X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/9169e4e1949c3fa879f0a2f98cfbd8c444743c27..893aed34faba816da0212148efe82e1ca92c263f:/print-lisp.c diff --git a/print-lisp.c b/print-lisp.c index 379bffbb..fc2006f4 100644 --- a/print-lisp.c +++ b/print-lisp.c @@ -100,7 +100,6 @@ #include "netdissect-stdinc.h" #include "netdissect.h" -#include #include "ip.h" #include "ip6.h" @@ -130,12 +129,12 @@ enum { }; static const struct tok lisp_type [] = { - { 0, "LISP-Reserved" }, - { 1, "LISP-Map-Request" }, - { 2, "LISP-Map-Reply" }, - { 3, "LISP-Map-Register" }, - { 4, "LISP-Map-Notify" }, - { 8, "LISP-Encapsulated-Contol-Message" }, + { 0, "LISP-Reserved" }, + { 1, "LISP-Map-Request" }, + { 2, "LISP-Map-Reply" }, + { 3, "LISP-Map-Register" }, + { 4, "LISP-Map-Notify" }, + { 8, "LISP-Encapsulated-Control-Message" }, { 0, NULL } }; @@ -284,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"); @@ -327,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);