dexter has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/pysim/+/18208 )


Change subject: utils: do not crash when all bytes of EF.IMSI are 0xFF
......................................................................

utils: do not crash when all bytes of EF.IMSI are 0xFF

In case try to decode the contents of an uninitalized EF.IMSI, the
function dec_imsi() would crash because it truncates all 0xFF from the
swapped version of the EF.IMSI contents and then accesses the first
element of the buffer. This always worls for EF.IMSI contents that
contain valid IMSI data, but if all bytes are set to 0xFF, then no data
is left in the buffer after truncating, so lets check if we even have
bytes left before we move on with the decoding.

Change-Id: I93874a1d7e0b87d39e4b06a5c504643cfabb451c
---
M pySim/utils.py
1 file changed, 2 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/08/18208/1

diff --git a/pySim/utils.py b/pySim/utils.py
index aab5d02..e5b0a74 100644
--- a/pySim/utils.py
+++ b/pySim/utils.py
@@ -81,6 +81,8 @@
        l = int(ef[0:2], 16) * 2                # Length of the IMSI string
        l = l - 1                                               # Encoded 
length byte includes oe nibble
        swapped = swap_nibbles(ef[2:]).rstrip('f')
+       if len(swapped) < 1:
+               return None
        oe = (int(swapped[0])>>3) & 1   # Odd (1) / Even (0)
        if not oe:
                # if even, only half of last byte was used

--
To view, visit https://gerrit.osmocom.org/c/pysim/+/18208
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I93874a1d7e0b87d39e4b06a5c504643cfabb451c
Gerrit-Change-Number: 18208
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pma...@sysmocom.de>
Gerrit-MessageType: newchange

Reply via email to