X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/e1c739a83d2bb82f408a96f5b15cb2dad3dee919..b51a0dafc7861eb31d21524ec067d7c529a664b8:/print-juniper.c diff --git a/print-juniper.c b/print-juniper.c index 7c3df49f..ea6f3f9f 100644 --- a/print-juniper.c +++ b/print-juniper.c @@ -30,6 +30,7 @@ __RCSID("NetBSD: print-juniper.c,v 1.3 2007/07/25 06:31:32 dogcow Exp "); #include +#define ND_LONGJMP_FROM_TCHECK #include "netdissect.h" #include "addrtoname.h" #include "extract.h" @@ -516,11 +517,6 @@ juniper_ggsn_if_print(netdissect_options *ndo, } ndo->ndo_ll_hdr_len += l2info.header_len; - return; - -trunc: - nd_print_trunc(ndo); - ndo->ndo_ll_hdr_len += l2info.header_len; } #endif @@ -599,11 +595,6 @@ juniper_es_if_print(netdissect_options *ndo, ip_print(ndo, p, l2info.length); ndo->ndo_ll_hdr_len += l2info.header_len; - return; - -trunc: - nd_print_trunc(ndo); - ndo->ndo_ll_hdr_len += l2info.header_len; } #endif @@ -643,11 +634,6 @@ juniper_monitor_if_print(netdissect_options *ndo, ip_heuristic_guess (ndo, p, l2info.length); ndo->ndo_ll_hdr_len += l2info.header_len; - return; - -trunc: - nd_print_trunc(ndo); - ndo->ndo_ll_hdr_len += l2info.header_len; } #endif @@ -689,11 +675,6 @@ juniper_services_if_print(netdissect_options *ndo, ip_heuristic_guess (ndo, p, l2info.length); ndo->ndo_ll_hdr_len += l2info.header_len; - return; - -trunc: - nd_print_trunc(ndo); - ndo->ndo_ll_hdr_len += l2info.header_len; } #endif @@ -968,6 +949,8 @@ juniper_mfr_if_print(netdissect_options *ndo, ND_PRINT("Bundle-ID %u, ", l2info.bundle); switch (l2info.proto) { case (LLCSAP_ISONS<<8 | LLCSAP_ISONS): + /* At least one byte is required */ + ND_TCHECK_1(p); isoclns_print(ndo, p + 1, l2info.length - 1); break; case (LLC_UI<<8 | NLPID_Q933): @@ -1068,6 +1051,8 @@ juniper_atm1_if_print(netdissect_options *ndo, } if (GET_U_1(p) == 0x03) { /* Cisco style NLPID encaps ? */ + /* At least one byte is required */ + ND_TCHECK_1(p); isoclns_print(ndo, p + 1, l2info.length - 1); /* FIXME check if frame was recognized */ ndo->ndo_ll_hdr_len += l2info.header_len; @@ -1135,6 +1120,8 @@ juniper_atm2_if_print(netdissect_options *ndo, } if (GET_U_1(p) == 0x03) { /* Cisco style NLPID encaps ? */ + /* At least one byte is required */ + ND_TCHECK_1(p); isoclns_print(ndo, p + 1, l2info.length - 1); /* FIXME check if frame was recognized */ ndo->ndo_ll_hdr_len += l2info.header_len;