From 96a7b89086d928e28cb2617b5e4cbcfda95c4f38 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20De=20Keersmaeker?=
 <francois.dekeersmaeker@uclouvain.be>
Date: Sat, 14 Dec 2024 18:37:48 +0100
Subject: [PATCH] DHCP options: fixed bug when encountering option 'end'

---
 pcap_anonymize/layers/mac.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/pcap_anonymize/layers/mac.py b/pcap_anonymize/layers/mac.py
index ffcdc14..656b014 100644
--- a/pcap_anonymize/layers/mac.py
+++ b/pcap_anonymize/layers/mac.py
@@ -222,7 +222,12 @@ def anonymize_dhcp(dhcp: BOOTP) -> BOOTP:
     if dhcp is None or dhcp.options is None:
         return dhcp
     
-    for i, (code, value) in enumerate(dhcp.options):
+    for i, option in enumerate(dhcp.options):
+        # Option is not of format (code, value), skip
+        if len(option) != 2:
+            continue
+
+        code, value = option
         if code == DHCP_OPTION_CLIENT_ID and value[0] == DHCP_CLIENT_ID_TYPE_ETH:
             mac_anon = mac_str_to_bytes(anonymize_mac(value[1:7]))
             dhcp.options[i] = (code, value[0].to_bytes(1, BYTE_ORDER) + mac_anon)
-- 
GitLab