mirror of
https://github.com/nmap/nmap.git
synced 2026-01-05 22:19:03 +00:00
Use 32-bit values, not 16, for IP ID values.
IP ID fields are overloaded to include the flow label of IPv6 packets. In particular, abstract_ip_hdr is no longer limited to 16 bits.
This commit is contained in:
@@ -730,8 +730,7 @@ static const void *ip_get_data_primitive(const void *packet, unsigned int *len,
|
||||
memcpy(&sin6->sin6_addr, &ip6->ip6_dst, IP6_ADDR_LEN);
|
||||
|
||||
hdr->ttl = ip6->ip6_hlim;
|
||||
/* abstract_hdr.ipid is limited to 16 bits. */
|
||||
hdr->ipid = (u16) ntohl(ip6->ip6_flow & IP6_FLOWLABEL_MASK);
|
||||
hdr->ipid = ntohl(ip6->ip6_flow & IP6_FLOWLABEL_MASK);
|
||||
return ipv6_get_data_primitive(ip6, len, &hdr->proto, upperlayer_only);
|
||||
}
|
||||
|
||||
|
||||
@@ -160,7 +160,7 @@ struct abstract_ip_hdr {
|
||||
struct sockaddr_storage dst;
|
||||
u8 proto; /* IPv4 proto or IPv6 next header. */
|
||||
u8 ttl; /* IPv4 TTL or IPv6 hop limit. */
|
||||
u16 ipid; /* IPv4 IP ID or IPv6 flow label. */
|
||||
u32 ipid; /* IPv4 IP ID or IPv6 flow label. */
|
||||
};
|
||||
|
||||
void netutil_fatal(const char *str, ...)
|
||||
|
||||
Reference in New Issue
Block a user