X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/92aa5dd3e12111a185b41f75f754a1684f25b596..1f563c19e77e7be5e1a2e3b6336d0475d7530f61:/print-juniper.c?ds=inline diff --git a/print-juniper.c b/print-juniper.c index 12015907..b1504b42 100644 --- a/print-juniper.c +++ b/print-juniper.c @@ -495,13 +495,13 @@ juniper_ggsn_if_print(netdissect_options *ndo, p+=l2info.header_len; gh = (struct juniper_ggsn_header *)&l2info.cookie; - ND_TCHECK_SIZE(gh); - proto = GET_U_1(gh->proto); + /* use EXTRACT_, not GET_ (not packet buffer pointer) */ + proto = EXTRACT_U_1(gh->proto); if (ndo->ndo_eflag) { ND_PRINT("proto %s (%u), vlan %u: ", tok2str(juniper_protocol_values,"Unknown",proto), proto, - GET_BE_U_2(gh->vlan_id)); + EXTRACT_BE_U_2(gh->vlan_id)); } switch (proto) { @@ -1331,7 +1331,8 @@ juniper_parse_header(netdissect_options *ndo, /* sanity checks */ if (tlv_type == 0 || tlv_len == 0) break; - ND_LCHECK_U(extension_length, tlv_len + JUNIPER_EXT_TLV_OVERHEAD); + ND_ICHECK_U(extension_length, <, + tlv_len + JUNIPER_EXT_TLV_OVERHEAD); if (ndo->ndo_vflag > 1) ND_PRINT("\n\t %s Extension TLV #%u, length %u, value ", @@ -1558,10 +1559,18 @@ juniper_parse_header(netdissect_options *ndo, } break; #endif +#ifdef DLT_JUNIPER_ES + case DLT_JUNIPER_ES: + break; +#endif #ifdef DLT_JUNIPER_GGSN case DLT_JUNIPER_GGSN: break; #endif +#ifdef DLT_JUNIPER_SERVICES + case DLT_JUNIPER_SERVICES: + break; +#endif #ifdef DLT_JUNIPER_ATM1 case DLT_JUNIPER_ATM1: break; @@ -1582,6 +1591,18 @@ juniper_parse_header(netdissect_options *ndo, case DLT_JUNIPER_FRELAY: break; #endif +#ifdef DLT_JUNIPER_MONITOR + case DLT_JUNIPER_MONITOR: + break; +#endif +#ifdef DLT_JUNIPER_PPPOE + case DLT_JUNIPER_PPPOE: + break; +#endif +#ifdef DLT_JUNIPER_PPPOE_ATM + case DLT_JUNIPER_PPPOE_ATM: + break; +#endif default: ND_PRINT("Unknown Juniper DLT_ type %u: ", l2info->pictype);