X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/aad6ac30ce7904f688226dbc61021ca4f907274f..b780f21e6243e80eb95ebfb94c4fd6ea9e79a3b3:/print-lisp.c diff --git a/print-lisp.c b/print-lisp.c index 6e9cbd14..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"); @@ -328,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); @@ -390,7 +389,6 @@ trunc: return; invalid: nd_print_invalid(ndo); - return; } static uint8_t @@ -430,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)