From: guy Date: Wed, 24 Mar 2004 09:01:39 +0000 (+0000) Subject: Do the length checks only for IP options with a length field. X-Git-Tag: tcpdump-3.8.2~6 X-Git-Url: https://git.tcpdump.org/tcpdump/commitdiff_plain/0cda03197e4c05dcd92fc071dba3f0532963c264 Do the length checks only for IP options with a length field. --- diff --git a/print-ip.c b/print-ip.c index f1f08d27..4773d363 100644 --- a/print-ip.c +++ b/print-ip.c @@ -21,7 +21,7 @@ #ifndef lint static const char rcsid[] _U_ = - "@(#) $Header: /tcpdump/master/tcpdump/print-ip.c,v 1.128.2.5 2004-03-24 01:27:29 guy Exp $ (LBL)"; + "@(#) $Header: /tcpdump/master/tcpdump/print-ip.c,v 1.128.2.6 2004-03-24 09:01:39 guy Exp $ (LBL)"; #endif #ifdef HAVE_CONFIG_H @@ -200,12 +200,12 @@ ip_optprint(register const u_char *cp, u_int length) else { TCHECK(cp[1]); len = cp[1]; + if (len < 2) { + printf("[|ip op len %d]", len); + return; + } + TCHECK2(*cp, len); } - if (len < 2) { - printf("[|ip op len %d]", len); - return; - } - TCHECK2(*cp, len); switch (tt) { case IPOPT_EOL: