diff options
author | Francois-Xavier Le Bail <devel.fx.lebail@orange.fr> | 2020-04-11 15:50:32 +0200 |
---|---|---|
committer | Francois-Xavier Le Bail <devel.fx.lebail@orange.fr> | 2020-04-11 15:50:32 +0200 |
commit | e3b8b6f5cb34b8a39f7bb105ca42b9589e454593 (patch) | |
tree | 9c53d1509533fbcceb39e931918fa05b3ccd5977 | |
parent | 6eb9a3d10c30c6e8b210651d7d0dbfabbae46289 (diff) | |
download | tcpdump-e3b8b6f5cb34b8a39f7bb105ca42b9589e454593.tar.gz |
IPv4/IPv6 demux: ICMPv6 in IPv4 is invalid
" Every ICMPv6 message is preceded by an IPv6 header and zero or more
IPv6 extension headers. The ICMPv6 header is identified by a Next
Header value of 58 in the immediately preceding header."
(RFC 4443)
-rw-r--r-- | print-ip-demux.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/print-ip-demux.c b/print-ip-demux.c index b6d6b706..d3f03b66 100644 --- a/print-ip-demux.c +++ b/print-ip-demux.c @@ -109,7 +109,13 @@ again: break; case IPPROTO_ICMPV6: - icmp6_print(ndo, bp, length, iph, fragmented); + if (ver == 6) + icmp6_print(ndo, bp, length, iph, fragmented); + else { + ND_PRINT("[%s requires IPv6]", + tok2str(ipproto_values,"unknown",nh)); + nd_print_invalid(ndo); + } break; case IPPROTO_PIGP: |