aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax <msuraev@sysmocom.de>2018-11-26 19:01:30 +0100
committerMax <msuraev@sysmocom.de>2018-11-26 19:01:30 +0100
commitf0aa41e6a1f45527736d8d1354a67a62ccf5fd12 (patch)
treee55df7cc3eb0208bce8d5a0d7b47d98680979ecc
parent04e7c64902f0ea9b06558c5a2b214417a52f99ff (diff)
osmo_ipa: add extended checks
Make sure we properly handle None objects. Change-Id: If5ddc04b8a5dc26e56e5f5bbec7f28cf0af4a97b
-rwxr-xr-xosmopy/osmo_ipa.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/osmopy/osmo_ipa.py b/osmopy/osmo_ipa.py
index 41865c1..462c4ec 100755
--- a/osmopy/osmo_ipa.py
+++ b/osmopy/osmo_ipa.py
@@ -106,8 +106,9 @@ class IPA(object):
Strip IPA protocol header correctly removing extension if present
Returns data length, IPA protocol, extension (or None if not defined for a give protocol) and the data without header
"""
- if not len(data):
+ if data == None or len(data) == 0:
return None, None, None, None
+
(dlen, proto) = struct.unpack('>HB', data[:3])
if self.PROTO['OSMO'] == proto or self.PROTO['CCM'] == proto: # there's extension which we have to unpack
return struct.unpack('>HBB', data[:4]) + (data[4:], ) # length, protocol, extension, data
@@ -117,6 +118,9 @@ class IPA(object):
"""
Split the data which contains multiple concatenated IPA messages into tuple (first, rest) where rest contains remaining messages, first is the single IPA message
"""
+ if data == None or len(data) == 0:
+ return None, None
+
(length, _, _, _) = self.del_header(data)
return data[:(length + 3)], data[(length + 3):]