laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/27166 )
Change subject: filesystem: Don't pass empty string to parse_select_response() ......................................................................
filesystem: Don't pass empty string to parse_select_response()
This happens e.g. when selecting the ARA-M applet on sysmoISIM-SJA2:
pySIM-shell (MF)> select ADF.ARA-M -> 00a4040409 a00000015141434c00 <- 9000: Traceback (most recent call last): File "/space/home/laforge/.local/lib/python3.9/site-packages/cmd2/cmd2.py", line 2064, in onecmd_plus_hooks stop = self.onecmd(statement, add_to_history=add_to_history) File "/space/home/laforge/.local/lib/python3.9/site-packages/cmd2/cmd2.py", line 2494, in onecmd stop = func(statement) File "/space/home/laforge/projects/git/pysim/./pySim-shell.py", line 750, in do_select fcp_dec = self._cmd.rs.select(path, self._cmd) File "/space/home/laforge/projects/git/pysim/pySim/filesystem.py", line 1314, in select select_resp = f.decode_select_response(data) File "/space/home/laforge/projects/git/pysim/pySim/filesystem.py", line 193, in decode_select_response return self.parent.decode_select_response(data_hex) File "/space/home/laforge/projects/git/pysim/pySim/filesystem.py", line 378, in decode_select_response return profile.decode_select_response(data_hex) File "/space/home/laforge/projects/git/pysim/pySim/ts_102_221.py", line 796, in decode_select_response t.from_tlv(h2b(resp_hex)) File "/space/home/laforge/projects/git/pysim/pySim/tlv.py", line 231, in from_tlv (rawtag, remainder) = self.__class__._parse_tag_raw(do) File "/space/home/laforge/projects/git/pysim/pySim/tlv.py", line 258, in _parse_tag_raw return bertlv_parse_tag_raw(do) File "/space/home/laforge/projects/git/pysim/pySim/utils.py", line 208, in bertlv_parse_tag_raw if binary[0] == 0xff and len(binary) == 1 or binary[0] == 0xff and binary[1] == 0xff: IndexError: bytearray index out of range EXCEPTION of type 'IndexError' occurred with message: 'bytearray index out of range'
Change-Id: I910e6deba27d1483dff1e986c89f1a1b2165f49b --- M pySim/filesystem.py 1 file changed, 3 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/66/27166/1
diff --git a/pySim/filesystem.py b/pySim/filesystem.py index a323c5b..e5c56fc 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -372,6 +372,9 @@ install specific decoding. """
+ if data_hex == None or data_hex == '': + return data_hex + profile = self.get_profile()
if profile: