diff --git a/squinnondation/messages.py b/squinnondation/messages.py index db270b4..5ad2886 100644 --- a/squinnondation/messages.py +++ b/squinnondation/messages.py @@ -370,12 +370,12 @@ class Packet: pkt.body_length = socket.ntohs(int.from_bytes(data[2:4], sys.byteorder)) pkt.body = [] read_bytes = 0 - while read_bytes <= min(len(data) - 4, pkt.body_length): - tlv_type = data[4] + while read_bytes < min(len(data) - 4, pkt.body_length): + tlv_type = data[4 + read_bytes] if not (0 <= tlv_type < len(TLV.tlv_classes())): raise ValueError(f"TLV type is not supported: {tlv_type}") tlv = TLV.tlv_classes()[tlv_type]() - tlv.unmarshal(data[4:4 + pkt.body_length]) + tlv.unmarshal(data[4 + read_bytes:4 + read_bytes + pkt.body_length]) pkt.body.append(tlv) read_bytes += len(tlv)