X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/f207b7c6a6fc72837d42870a7130aeaa7931987a..0845bc813c1cc48b18cdefff0b387c110647463c:/print-geonet.c diff --git a/print-geonet.c b/print-geonet.c index edfb7f2d..9b61ef20 100644 --- a/print-geonet.c +++ b/print-geonet.c @@ -15,14 +15,13 @@ * Original code by Ola Martin Lykkja (ola.lykkja@q-free.com) */ -#define NETDISSECT_REWORKED #ifdef HAVE_CONFIG_H #include "config.h" #endif #include -#include "interface.h" +#include "netdissect.h" #include "extract.h" #include "addrtoname.h" @@ -118,8 +117,8 @@ geonet_print(netdissect_options *ndo, const u_char *eth, const u_char *bp, u_int /* Process Common Header */ if (length < 36) - goto malformed; - + goto invalid; + ND_TCHECK2(*bp, 7); version = bp[0] >> 4; next_hdr = bp[0] & 0x0f; @@ -224,7 +223,7 @@ geonet_print(netdissect_options *ndo, const u_char *eth, const u_char *bp, u_int /* Skip Extended headers */ if (hdr_size >= 0) { if (length < (u_int)hdr_size) - goto malformed; + goto invalid; ND_TCHECK2(*bp, hdr_size); length -= hdr_size; bp += hdr_size; @@ -234,7 +233,7 @@ geonet_print(netdissect_options *ndo, const u_char *eth, const u_char *bp, u_int case 1: case 2: /* BTP A/B */ if (length < 4) - goto malformed; + goto invalid; ND_TCHECK2(*bp, 4); print_btp(ndo, bp); length -= 4; @@ -261,7 +260,7 @@ geonet_print(netdissect_options *ndo, const u_char *eth, const u_char *bp, u_int ND_DEFAULTPRINT(bp, length); return; -malformed: +invalid: ND_PRINT((ndo, " Malformed (small) ")); /* XXX - print the remaining data as hex? */ return;