doc/news.rst | 2 ++ pyderasn.py | 5 ++++- diff --git a/doc/news.rst b/doc/news.rst index ba6509e9123c58fe0083b1d3295d4d374f77e24cb1d1c9cc95b9209ec5f986f6..a02dcda973e8bbf45b8c7ed5f1341e15d699154957ffa20551f8e9901dcdc5c6 100644 --- a/doc/news.rst +++ b/doc/news.rst @@ -8,6 +8,8 @@ --- * Removed ``lenindef``, ``ber_encoded`` attributes from the Choice -- they must be taken from underlying value, as Choice does not have its own encoding +* Do not yield extra EOC PP for Any, having indefinite length encoding + and containing autodecoded DEFINED BY value .. _release4.1: diff --git a/pyderasn.py b/pyderasn.py index a174e74f2fd2e6f634a52f7707aaf29095ba14ff7a1086b638470e2bea67e79a..ba9cc110d29eb57ed4ea462d3dce30a5024fb231b2a19733e6540a05d19e59b7 100755 --- a/pyderasn.py +++ b/pyderasn.py @@ -1170,7 +1170,10 @@ def fulllen(self): return self.expl_tlvlen if self.expled else self.tlvlen def pps_lenindef(self, decode_path): - if self.lenindef: + if self.lenindef and not ( + getattr(self, "defined", None) is not None and + self.defined[1].lenindef + ): yield _pp( asn1_type_name="EOC", obj_name="",