X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/fd409921d94a0aff7804df31515fa42b675118b5..refs/heads/master:/print-lwres.c diff --git a/print-lwres.c b/print-lwres.c index f28eab97..29b49c6e 100644 --- a/print-lwres.c +++ b/print-lwres.c @@ -29,9 +29,7 @@ /* \summary: BIND9 Lightweight Resolver protocol printer */ -#ifdef HAVE_CONFIG_H #include -#endif #include "netdissect-stdinc.h" @@ -182,7 +180,7 @@ static const struct tok opcode[] = { { LWRES_OPCODE_GETADDRSBYNAME, "getaddrsbyname", }, { LWRES_OPCODE_GETNAMEBYADDR, "getnamebyaddr", }, { LWRES_OPCODE_GETRDATABYNAME, "getrdatabyname", }, - { 0, NULL, }, + { 0, NULL, }, }; /* print-domain.c */ @@ -191,7 +189,7 @@ extern const struct tok ns_class2str[]; static unsigned lwres_printname(netdissect_options *ndo, - size_t l, const u_char *p0) + u_int l, const u_char *p0) { ND_PRINT(" "); nd_printjn(ndo, p0, l); @@ -267,7 +265,7 @@ lwres_printaddr(netdissect_options *ndo, } } - return ND_BYTES_BETWEEN(p, p0); + return ND_BYTES_BETWEEN(p0, p); } void @@ -291,7 +289,9 @@ lwres_print(netdissect_options *ndo, if (ndo->ndo_vflag || v != LWRES_LWPACKETVERSION_0) ND_PRINT(" v%u", v); if (v != LWRES_LWPACKETVERSION_0) { - s = bp + GET_BE_U_4(np->length); + uint32_t pkt_len = GET_BE_U_4(np->length); + ND_TCHECK_LEN(bp, pkt_len); + s = bp + pkt_len; goto tail; } @@ -546,7 +546,7 @@ lwres_print(netdissect_options *ndo, ND_PRINT(" [len: %u != %u]", GET_BE_U_4(np->length), length); } - if (!unsupported && ND_BYTES_BETWEEN(s, bp) < GET_BE_U_4(np->length)) + if (!unsupported && ND_BYTES_BETWEEN(bp, s) < GET_BE_U_4(np->length)) ND_PRINT("[extra]"); return;