diff --git a/scapy/layers/inet6.py b/scapy/layers/inet6.py index a94a15d55353b969a78c3e7f5c6c8c04818c9f9d..a7d0961b2a7209078cd2406dad25b825e87cac11 100644 --- a/scapy/layers/inet6.py +++ b/scapy/layers/inet6.py @@ -1461,9 +1461,9 @@ class TruncPktLenField(PacketLenField): l = self.length_from(pkt) i = self.m2i(pkt, s[:l]) return s[l:],i - + def m2i(self, pkt, m): - s = None + s = None try: # It can happen we have sth shorter than 40 bytes s = self.cls(m) except: @@ -1474,22 +1474,22 @@ class TruncPktLenField(PacketLenField): s = str(x) l = len(s) r = (l + self.cur_shift) % 8 - l = l - r + l = l - r return s[:l] def i2len(self, pkt, i): return len(self.i2m(pkt, i)) - + # Faire un post_build pour le recalcul de la taille (en multiple de 8 octets) class ICMPv6NDOptRedirectedHdr(_ICMPv6NDGuessPayload, Packet): name = "ICMPv6 Neighbor Discovery Option - Redirected Header" fields_desc = [ ByteField("type",4), FieldLenField("len", None, length_of="pkt", fmt="B", - adjust = lambda pkt,x:(x+4)/8), + adjust = lambda pkt,x:(x+8)/8), StrFixedLenField("res", "\x00"*6, 6), - TruncPktLenField("pkt", "", IPv6, 4, - length_from = lambda pkt: 8*pkt.len-4) ] + TruncPktLenField("pkt", "", IPv6, 8, + length_from = lambda pkt: 8*pkt.len-8) ] # See which value should be used for default MTU instead of 1280 class ICMPv6NDOptMTU(_ICMPv6NDGuessPayload, Packet):