diff options
author | Ilya Etingof <etingof@gmail.com> | 2017-10-10 13:22:50 +0200 |
---|---|---|
committer | Ilya Etingof <etingof@gmail.com> | 2017-10-10 13:22:50 +0200 |
commit | d83c99d986376e1a7d7a200132dd6fc6d12bdcd5 (patch) | |
tree | ef47751bbf427fcbc60885191103a560aaf13f29 /pyasn1/codec | |
parent | 368d2efaf46a863f8c75ddf9878a5559f246a00a (diff) | |
download | pyasn1-d83c99d986376e1a7d7a200132dd6fc6d12bdcd5.tar.gz |
do not attempt to decode optional open types
Diffstat (limited to 'pyasn1/codec')
-rw-r--r-- | pyasn1/codec/ber/decoder.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/pyasn1/codec/ber/decoder.py b/pyasn1/codec/ber/decoder.py index b1863ab..f2c4e4a 100644 --- a/pyasn1/codec/ber/decoder.py +++ b/pyasn1/codec/ber/decoder.py @@ -561,6 +561,9 @@ class UniversalConstructedTypeDecoder(AbstractConstructedDecoder): if not namedType.openType: continue + if namedType.isOptional and not asn1Object.getComponentByPosition(idx).isValue: + continue + governingValue = asn1Object.getComponentByName( namedType.openType.name ) @@ -697,6 +700,9 @@ class UniversalConstructedTypeDecoder(AbstractConstructedDecoder): if not namedType.openType: continue + if namedType.isOptional and not asn1Object.getComponentByPosition(idx).isValue: + continue + governingValue = asn1Object.getComponentByName( namedType.openType.name ) |