summaryrefslogtreecommitdiff
path: root/print-ip6.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2015-07-04 18:45:11 -0700
committerFrancois-Xavier Le Bail <fx.lebail@yahoo.com>2017-01-18 09:16:37 +0100
commit406b0e3e9293a545c831ee9ed1558c3a5f5bd60d (patch)
tree74a8426ef4476bddc7977894065fd80e1e7007c5 /print-ip6.c
parenta7be3fdba438f8ea80586d2a00b23fb9a96d602c (diff)
downloadtcpdump-406b0e3e9293a545c831ee9ed1558c3a5f5bd60d.tar.gz
Stop processing IPPROTO_ values once we hit IPPROTO_IPCOMP.
It's not like, for example, AH or ESP, where, following the header for that protocol, there's another protocol with its own payload.
Diffstat (limited to 'print-ip6.c')
-rw-r--r--print-ip6.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/print-ip6.c b/print-ip6.c
index c5811300..2e1803f0 100644
--- a/print-ip6.c
+++ b/print-ip6.c
@@ -353,9 +353,14 @@ ip6_print(netdissect_options *ndo, const u_char *bp, u_int length)
}
case IPPROTO_IPCOMP:
{
- int enh;
- advance = ipcomp_print(ndo, cp, &enh);
- nh = enh & 0xff;
+ ipcomp_print(ndo, cp);
+ /*
+ * Either this has decompressed the payload and
+ * printed it, in which case there's nothing more
+ * to do, or it hasn't, in which case there's
+ * nothing more to do.
+ */
+ advance = -1;
break;
}