X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/bb5d16f3b6643904f39a38612a5449cc98db7fda..b780f21e6243e80eb95ebfb94c4fd6ea9e79a3b3:/print-lisp.c diff --git a/print-lisp.c b/print-lisp.c index ac95ba69..756fff0f 100644 --- a/print-lisp.c +++ b/print-lisp.c @@ -100,8 +100,6 @@ #include "netdissect-stdinc.h" #include "netdissect.h" -#include -#include #include "ip.h" #include "ip6.h" @@ -285,8 +283,8 @@ lisp_print(netdissect_options *ndo, const u_char *bp, u_int length) goto invalid; /* Print all the EID records */ - while ((length > packet_offset) && (record_count--)) { - + while ((length > packet_offset) && (record_count != 0)) { + record_count--; ND_TCHECK_LEN(packet_iterator + packet_offset, MAP_REGISTER_EID_LEN); ND_PRINT("\n"); @@ -307,14 +305,12 @@ lisp_print(netdissect_options *ndo, const u_char *bp, u_int length) switch (eid_afi) { case IPv4_AFI: - ND_TCHECK_4(packet_iterator + packet_offset); ND_PRINT(" EID %s/%u,", GET_IPADDR_STRING(packet_iterator + packet_offset), mask_len); packet_offset += 4; break; case IPv6_AFI: - ND_TCHECK_16(packet_iterator + packet_offset); ND_PRINT(" EID %s/%u,", GET_IP6ADDR_STRING(packet_iterator + packet_offset), mask_len); @@ -330,7 +326,8 @@ lisp_print(netdissect_options *ndo, const u_char *bp, u_int length) ND_PRINT(" %u locator(s)", loc_count); - while (loc_count--) { + while (loc_count != 0) { + loc_count--; ND_TCHECK_LEN(packet_iterator + packet_offset, MAP_REGISTER_LOC_LEN); lisp_loc = (const lisp_map_register_loc *) (packet_iterator + packet_offset); @@ -392,7 +389,6 @@ trunc: return; invalid: nd_print_invalid(ndo); - return; } static uint8_t @@ -432,8 +428,6 @@ static void lisp_hdr_flag(netdissect_options *ndo, const lisp_map_register_hdr * ND_PRINT(" flags [%s],", bittok2str(map_notify_hdr_flag, "none", GET_BE_U_4(lisp_hdr))); } - - return; } static void action_flag(netdissect_options *ndo, uint8_t act_auth_inc_res)