summaryrefslogtreecommitdiff
path: root/print-ip-demux.c
diff options
context:
space:
mode:
authorFrancois-Xavier Le Bail <devel.fx.lebail@orange.fr>2020-05-14 17:08:54 +0200
committerFrancois-Xavier Le Bail <devel.fx.lebail@orange.fr>2020-05-14 17:14:40 +0200
commite199894a8a745b65814db606deb0af77b6f147ff (patch)
treeed76194692a2c8200f55b8a1b964d5559ef36bde /print-ip-demux.c
parent2c377170bdc3d16b85185cacaebc4601ddc19bfe (diff)
downloadtcpdump-e199894a8a745b65814db606deb0af77b6f147ff.tar.gz
IPv4/IPv6 demux: IGMP in IPv6 is invalid
"4. Message Formats IGMP messages are encapsulated in IPv4 datagrams, with an IP protocol number of 2." (RFC 3376)
Diffstat (limited to 'print-ip-demux.c')
-rw-r--r--print-ip-demux.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/print-ip-demux.c b/print-ip-demux.c
index 9d562d77..7df0f709 100644
--- a/print-ip-demux.c
+++ b/print-ip-demux.c
@@ -161,7 +161,13 @@ again:
break;
case IPPROTO_IGMP:
- igmp_print(ndo, bp, length);
+ if (ver == 4)
+ igmp_print(ndo, bp, length);
+ else {
+ ND_PRINT("[%s requires IPv4]",
+ tok2str(ipproto_values,"unknown",nh));
+ nd_print_invalid(ndo);
+ }
break;
case IPPROTO_IPV4: