diff --git a/CHANGELOG b/CHANGELOG index 52957ec24..4ddb8fd2d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,9 @@ # Nmap Changelog ($Id$); -*-text-*- +o Fix ICMP Echo (-PE) host discovery for IPv6, broken since 6.45, caused by + failing to set the ICMP ID for outgoing packets which is used to match + incoming responses. [Andrew Waters] + o Solve a crash on Windows 8.1 on Surface Pro 3 caused by WinPcap trying to write an error message to a NULL pointer. [Peter Malecka] diff --git a/scan_engine_raw.cc b/scan_engine_raw.cc index 8657aafdc..fd70ade87 100644 --- a/scan_engine_raw.cc +++ b/scan_engine_raw.cc @@ -193,7 +193,7 @@ void UltraProbe::setIP(u8 *ippacket, u32 len, const probespec *pspec) { sctp = (struct sctp_hdr *) data; probes.IP.pd.sctp.sport = ntohs(sctp->sh_sport); probes.IP.pd.sctp.vtag = ntohl(sctp->sh_vtag); - } else if (hdr == IPPROTO_ICMP) { + } else if (hdr == IPPROTO_ICMP || hdr == IPPROTO_ICMPV6) { icmp = (struct ppkt *) data; probes.IP.pd.icmp.ident = ntohs(icmp->id); }