X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/b751376719cfe1924aa07ab8fd364ec1a55c04b3..d2777156522f139a858bd6b5b51e364826bc95a7:/print-slow.c diff --git a/print-slow.c b/print-slow.c index 27a814b9..11838180 100644 --- a/print-slow.c +++ b/print-slow.c @@ -26,6 +26,7 @@ #include "netdissect-stdinc.h" +#define ND_LONGJMP_FROM_TCHECK #include "netdissect.h" #include "extract.h" #include "addrtoname.h" @@ -251,7 +252,6 @@ slow_print(netdissect_options *ndo, ndo->ndo_protocol = "slow"; if (len < 1) goto tooshort; - ND_TCHECK_1(pptr); subtype = GET_U_1(pptr); /* @@ -261,7 +261,6 @@ slow_print(netdissect_options *ndo, case SLOW_PROTO_LACP: if (len < 2) goto tooshort; - ND_TCHECK_1(pptr + 1); if (GET_U_1(pptr + 1) != LACP_VERSION) { ND_PRINT("LACP version %u packet not supported", GET_U_1(pptr + 1)); @@ -273,7 +272,6 @@ slow_print(netdissect_options *ndo, case SLOW_PROTO_MARKER: if (len < 2) goto tooshort; - ND_TCHECK_1(pptr + 1); if (GET_U_1(pptr + 1) != MARKER_VERSION) { ND_PRINT("MARKER version %u packet not supported", GET_U_1(pptr + 1)); @@ -339,10 +337,6 @@ tooshort: ND_PRINT(" (packet is too short)"); else ND_PRINT("\n\t\t packet is too short"); - return; - -trunc: - nd_print_trunc(ndo); } static void @@ -366,7 +360,6 @@ slow_marker_lacp_print(netdissect_options *ndo, if (tlen < sizeof(struct tlv_header_t)) goto tooshort; /* did we capture enough for fully decoding the tlv header ? */ - ND_TCHECK_LEN(tptr, sizeof(struct tlv_header_t)); tlv_header = (const struct tlv_header_t *)tptr; tlv_type = GET_U_1(tlv_header->type); tlv_len = GET_U_1(tlv_header->length); @@ -389,7 +382,7 @@ slow_marker_lacp_print(netdissect_options *ndo, /* length includes the type and length fields */ if (tlv_len < sizeof(struct tlv_header_t)) { ND_PRINT("\n\t ERROR: illegal length - should be >= %zu", - sizeof(struct tlv_header_t)); + sizeof(struct tlv_header_t)); return; } @@ -410,7 +403,7 @@ slow_marker_lacp_print(netdissect_options *ndo, if (tlv_tlen != sizeof(struct lacp_tlv_actor_partner_info_t)) { ND_PRINT("\n\t ERROR: illegal length - should be %zu", - sizeof(struct tlv_header_t) + sizeof(struct lacp_tlv_actor_partner_info_t)); + sizeof(struct tlv_header_t) + sizeof(struct lacp_tlv_actor_partner_info_t)); goto badlength; } @@ -433,7 +426,7 @@ slow_marker_lacp_print(netdissect_options *ndo, if (tlv_tlen != sizeof(struct lacp_tlv_collector_info_t)) { ND_PRINT("\n\t ERROR: illegal length - should be %zu", - sizeof(struct tlv_header_t) + sizeof(struct lacp_tlv_collector_info_t)); + sizeof(struct tlv_header_t) + sizeof(struct lacp_tlv_collector_info_t)); goto badlength; } @@ -448,7 +441,7 @@ slow_marker_lacp_print(netdissect_options *ndo, if (tlv_tlen != sizeof(struct marker_tlv_marker_info_t)) { ND_PRINT("\n\t ERROR: illegal length - should be %zu", - sizeof(struct tlv_header_t) + sizeof(struct marker_tlv_marker_info_t)); + sizeof(struct tlv_header_t) + sizeof(struct marker_tlv_marker_info_t)); goto badlength; } @@ -481,10 +474,6 @@ slow_marker_lacp_print(netdissect_options *ndo, tooshort: ND_PRINT("\n\t\t packet is too short"); - return; - -trunc: - nd_print_trunc(ndo); } static void @@ -513,7 +502,7 @@ slow_oam_print(netdissect_options *ndo, } ptr; union { - const struct slow_oam_info_t *slow_oam_info; + const struct slow_oam_info_t *slow_oam_info; const struct slow_oam_link_event_t *slow_oam_link_event; const struct slow_oam_variablerequest_t *slow_oam_variablerequest; const struct slow_oam_variableresponse_t *slow_oam_variableresponse; @@ -558,8 +547,8 @@ slow_oam_print(netdissect_options *ndo, /* length includes the type and length fields */ if (length < sizeof(struct slow_oam_tlv_header_t)) { - ND_PRINT("\n\t ERROR: illegal length - should be >= %u", - (u_int)sizeof(struct slow_oam_tlv_header_t)); + ND_PRINT("\n\t ERROR: illegal length - should be >= %zu", + sizeof(struct slow_oam_tlv_header_t)); return; } @@ -628,7 +617,6 @@ slow_oam_print(netdissect_options *ndo, /* Sequence number */ if (tlen < 2) goto tooshort; - ND_TCHECK_2(tptr); ND_PRINT("\n\t Sequence Number %u", GET_BE_U_2(tptr)); tlen -= 2; tptr += 2; @@ -638,7 +626,6 @@ slow_oam_print(netdissect_options *ndo, ptr.slow_oam_tlv_header = (const struct slow_oam_tlv_header_t *)tptr; if (tlen < sizeof(*ptr.slow_oam_tlv_header)) goto tooshort; - ND_TCHECK_SIZE(ptr.slow_oam_tlv_header); type = GET_U_1(ptr.slow_oam_tlv_header->type); length = GET_U_1(ptr.slow_oam_tlv_header->length); ND_PRINT("\n\t %s Link Event Type (%u), length %u", @@ -657,8 +644,8 @@ slow_oam_print(netdissect_options *ndo, /* length includes the type and length fields */ if (length < sizeof(struct slow_oam_tlv_header_t)) { - ND_PRINT("\n\t ERROR: illegal length - should be >= %u", - (u_int)sizeof(struct slow_oam_tlv_header_t)); + ND_PRINT("\n\t ERROR: illegal length - should be >= %zu", + sizeof(struct slow_oam_tlv_header_t)); return; } @@ -677,7 +664,7 @@ slow_oam_print(netdissect_options *ndo, if (GET_U_1(tlv.slow_oam_link_event->event_length) != sizeof(struct slow_oam_link_event_t)) { ND_PRINT("\n\t ERROR: illegal length - should be %zu", - sizeof(struct slow_oam_link_event_t)); + sizeof(struct slow_oam_link_event_t)); hexdump = TRUE; goto badlength_event_notif; } @@ -720,7 +707,6 @@ slow_oam_print(netdissect_options *ndo, tlv.slow_oam_loopbackctrl = (const struct slow_oam_loopbackctrl_t *)tptr; if (tlen < sizeof(*tlv.slow_oam_loopbackctrl)) goto tooshort; - ND_TCHECK_SIZE(tlv.slow_oam_loopbackctrl); command = GET_U_1(tlv.slow_oam_loopbackctrl->command); ND_PRINT("\n\t Command %s (%u)", tok2str(slow_oam_loopbackctrl_cmd_values, @@ -748,8 +734,4 @@ slow_oam_print(netdissect_options *ndo, tooshort: ND_PRINT("\n\t\t packet is too short"); - return; - -trunc: - nd_print_trunc(ndo); }