X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/ee68aa36460d7efeca48747f33b7f2adc0900bfb..19e63b148b385f238d94e9b159de06c89cfee02e:/print-juniper.c diff --git a/print-juniper.c b/print-juniper.c index 009897da..416b2f19 100644 --- a/print-juniper.c +++ b/print-juniper.c @@ -425,11 +425,11 @@ struct juniper_l2info_t { uint32_t caplen; uint32_t pictype; uint8_t direction; - uint8_t header_len; + u_int header_len; uint8_t cookie_len; uint8_t cookie_type; uint8_t cookie[8]; - uint8_t bundle; + u_int bundle; uint16_t proto; uint8_t flags; }; @@ -1399,6 +1399,11 @@ juniper_parse_header(netdissect_options *ndo, lp->s, l2info->cookie_len); + if (l2info->cookie_len > 8) { + nd_print_invalid(ndo); + return 0; + } + if (l2info->cookie_len > 0) { ND_TCHECK_LEN(p, l2info->cookie_len); if (ndo->ndo_eflag)