#include "netdissect-stdinc.h"
-#include <stdio.h>
-#include <string.h>
-
#define ND_LONGJMP_FROM_TCHECK
#include "netdissect.h"
#include "addrtoname.h"
struct lwres_addr {
nd_uint32_t family;
nd_uint16_t length;
- /* address folows */
+ /* address follows */
};
#define LWRES_ADDR_LEN 6
{ LWRES_OPCODE_GETADDRSBYNAME, "getaddrsbyname", },
{ LWRES_OPCODE_GETNAMEBYADDR, "getnamebyaddr", },
{ LWRES_OPCODE_GETRDATABYNAME, "getrdatabyname", },
- { 0, NULL, },
+ { 0, NULL, },
};
/* print-domain.c */
static unsigned
lwres_printname(netdissect_options *ndo,
- size_t l, const u_char *p0)
+ u_int l, const u_char *p0)
{
ND_PRINT(" ");
- (void)nd_printn(ndo, p0, l, NULL);
+ nd_printjn(ndo, p0, l);
p0 += l;
if (GET_U_1(p0))
ND_PRINT(" (not NUL-terminated!)");
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;
}
ND_PRINT(" [len: %u != %u]", GET_BE_U_4(np->length),
length);
}
- if (!unsupported && s < bp + GET_BE_U_4(np->length))
+ if (!unsupported && ND_BYTES_BETWEEN(s, bp) < GET_BE_U_4(np->length))
ND_PRINT("[extra]");
return;