laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/35455?usp=email )
(
1 is the latest approved patch-set. No files were changed between the latest approved patch-set and the submitted one. )Change subject: Fix TLV_IE_Collection.from_tlv in certain situations ......................................................................
Fix TLV_IE_Collection.from_tlv in certain situations
The existing code used to produce an empty output in situations where a TLV_IE_Collection would be parsed from a single TLV only with some additional trailing padding:
from pySim.utils import h2b from pySim.ts_31_102 import EF_CSGT t = EF_CSGT.Csgt_TLV_Collection() t.from_tlv(h2b('8906810300666f6fff'))
[TextCsgType(foo)]
t.to_dict()
[]
This was caused by an early return (actually returning the decoded result) but *without updating self.children*.
Change-Id: I1c84ccf698c6ff7e7f14242f9aaf7d15ac2239f4 --- M pySim/tlv.py 1 file changed, 25 insertions(+), 1 deletion(-)
Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified
diff --git a/pySim/tlv.py b/pySim/tlv.py index 4ac5ebf..ccf049e 100644 --- a/pySim/tlv.py +++ b/pySim/tlv.py @@ -361,7 +361,7 @@ # obtain the tag at the start of the remainder tag, r = first._parse_tag_raw(remainder) if tag == None: - return res + break if tag in self.members_by_tag: cls = self.members_by_tag[tag] # create an instance and parse accordingly