From f0aa41e6a1f45527736d8d1354a67a62ccf5fd12 Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 26 Nov 2018 19:01:30 +0100 Subject: [PATCH] osmo_ipa: add extended checks Make sure we properly handle None objects. Change-Id: If5ddc04b8a5dc26e56e5f5bbec7f28cf0af4a97b --- osmopy/osmo_ipa.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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):]