diff --git a/scapy/layers/inet6.py b/scapy/layers/inet6.py index af641515dd6b2ba27266b8a81b1fd0923b1e7f55..d64496cc9880f47ab90e78ee0065ab55e6728b4b 100644 --- a/scapy/layers/inet6.py +++ b/scapy/layers/inet6.py @@ -436,10 +436,10 @@ class IPv6(_IPv6GuessPayload, Packet, IPTools): nh = self.payload.nh # XXX what if another extension follows ? ss = foundhao.hoa - if conf.checkIPsrc and conf.checkIPaddr: + if conf.checkIPsrc and conf.checkIPaddr and not in6_ismaddr(sd): sd = inet_pton(socket.AF_INET6, sd) ss = inet_pton(socket.AF_INET6, self.src) - return struct.pack("B",nh)+self.payload.hashret() + return strxor(sd, ss) + struct.pack("B", nh) + self.payload.hashret() else: return struct.pack("B", nh)+self.payload.hashret()