From d6b4ba566e917b6b63fa6fce83562bb3bb199bd9 Mon Sep 17 00:00:00 2001 From: Adrian Granados Date: Sat, 6 May 2023 18:17:26 -0400 Subject: [PATCH 1/2] Fixes a key error when updating presence bit in dictionary --- radiotap/radiotap.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radiotap/radiotap.py b/radiotap/radiotap.py index 4cb3193..e72d9f4 100644 --- a/radiotap/radiotap.py +++ b/radiotap/radiotap.py @@ -295,7 +295,7 @@ def _add_vendor_presence_bit(d, oui, bit): if isinstance(d, list): tgt = d[-1] else: - tgt = d[oui] + tgt = d tgt['present'] |= 1 << bit def radiotap_parse(packet, valuelist=False): From f376b1f341eb5a370d4c825df6ca073150ef29c6 Mon Sep 17 00:00:00 2001 From: Adrian Granados Date: Sat, 6 May 2023 18:34:38 -0400 Subject: [PATCH 2/2] Cleanup (removed unused function args and vars) --- radiotap/radiotap.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/radiotap/radiotap.py b/radiotap/radiotap.py index e72d9f4..c268a96 100644 --- a/radiotap/radiotap.py +++ b/radiotap/radiotap.py @@ -281,7 +281,7 @@ def _present_bits(bitmap): count += 32 offset += 4 -def _add_fields(d, namespace, fields): +def _add_fields(d, fields): if not fields: return @@ -290,7 +290,7 @@ def _add_fields(d, namespace, fields): else: d.update(fields) -def _add_vendor_presence_bit(d, oui, bit): +def _add_vendor_presence_bit(d, bit): if isinstance(d, list): tgt = d[-1] @@ -329,22 +329,20 @@ def radiotap_parse(packet, valuelist=False): radiotap = [] if valuelist else {} - vendor_ns = None for namespace, i in _present_bits(packet[present_offset:offset]): if i is None: # namespace switch; if vendor switch to vendor namespace if namespace == 'vendor': offset, fields = _parse_vendor(packet, offset) - vendor_ns = fields['oui'] - _add_fields(radiotap, vendor_ns, fields) + _add_fields(radiotap, fields) continue elif namespace == 'vendor': # just track the presence bit... - _add_vendor_presence_bit(radiotap, vendor_ns, i) + _add_vendor_presence_bit(radiotap, i) offset, fields = _parse_radiotap_field(namespace, i, packet, offset) - _add_fields(radiotap, namespace, fields) + _add_fields(radiotap, fields) if offset == radiotap_len or offset is None: break