end of the packet, and isn't shorter than the header length.
Control messages have to have lengths.
#ifndef lint
static const char rcsid[] _U_ =
- "@(#) $Header: /tcpdump/master/tcpdump/print-l2tp.c,v 1.18 2005-04-20 21:36:09 guy Exp $";
+ "@(#) $Header: /tcpdump/master/tcpdump/print-l2tp.c,v 1.19 2005-04-20 21:49:56 guy Exp $";
#endif
#ifdef HAVE_CONFIG_H
cnt += (2 + pad);
}
+ if (flag_l) {
+ if (length < l2tp_len) {
+ printf(" Length %u larger than packet", l2tp_len);
+ return;
+ }
+ length = l2tp_len;
+ }
+ if (length < cnt) {
+ printf(" Length %u smaller than header length", length);
+ return;
+ }
if (flag_t) {
+ if (!flag_l) {
+ printf(" No length");
+ return;
+ }
if (length - cnt == 0) {
printf(" ZLB");
} else {