static int
rawprint(netdissect_options *ndo, const uint8_t *loc, size_t len)
{
- ND_TCHECK2(*loc, len);
+ ND_TCHECK_LEN(loc, len);
hexprint(ndo, loc, len);
return 1;
int totlen;
uint32_t t, v;
- ND_TCHECK(p[0]);
- if (p[0] & 0x80)
+ ND_TCHECK_1(p);
+ if (EXTRACT_U_1(p) & 0x80)
totlen = 4;
else {
ND_TCHECK_2(p + 2);
ND_PRINT((ndo,"type=%s ", map[t].type));
else
ND_PRINT((ndo,"type=#%d ", t));
- if (p[0] & 0x80) {
+ if (EXTRACT_U_1(p) & 0x80) {
ND_PRINT((ndo,"value="));
ND_TCHECK_2(p + 2);
v = EXTRACT_BE_U_2(p + 2);
if (map && t < nmap && v < map[t].nvalue && map[t].value[v])
ND_PRINT((ndo,"%s", map[t].value[v]));
else {
- if (!rawprint(ndo, (const uint8_t *)&p[2], 2)) {
+ if (!rawprint(ndo, (const uint8_t *)(p + 2), 2)) {
ND_PRINT((ndo,")"));
goto trunc;
}
}
} else {
ND_PRINT((ndo,"len=%d value=", totlen - 4));
- if (!rawprint(ndo, (const uint8_t *)&p[4], totlen - 4)) {
+ if (!rawprint(ndo, (const uint8_t *)(p + 4), totlen - 4)) {
ND_PRINT((ndo,")"));
goto trunc;
}
int totlen;
uint32_t t;
- ND_TCHECK(p[0]);
- if (p[0] & 0x80)
+ ND_TCHECK_1(p);
+ if (EXTRACT_U_1(p) & 0x80)
totlen = 4;
else {
ND_TCHECK_2(p + 2);
ND_PRINT((ndo,"("));
t = EXTRACT_BE_U_2(p) & 0x7fff;
ND_PRINT((ndo,"type=#%d ", t));
- if (p[0] & 0x80) {
+ if (EXTRACT_U_1(p) & 0x80) {
ND_PRINT((ndo,"value="));
- t = p[2];
- if (!rawprint(ndo, (const uint8_t *)&p[2], 2)) {
+ t = EXTRACT_U_1(p + 2);
+ if (!rawprint(ndo, (const uint8_t *)(p + 2), 2)) {
ND_PRINT((ndo,")"));
goto trunc;
}
} else {
ND_PRINT((ndo,"len=%d value=", totlen - 4));
- if (!rawprint(ndo, (const uint8_t *)&p[4], totlen - 4)) {
+ if (!rawprint(ndo, (const uint8_t *)(p + 4), totlen - 4)) {
ND_PRINT((ndo,")"));
goto trunc;
}
np = (const u_char *)ext + sizeof(sa);
if (sit != 0x01) {
- ND_TCHECK2(*(ext + 1), sizeof(ident));
+ ND_TCHECK_LEN(ext + 1, sizeof(ident));
UNALIGNED_MEMCPY(&ident, ext + 1, sizeof(ident));
ND_PRINT((ndo," ident=%u", (uint32_t)ntohl(ident)));
np += sizeof(ident);
break;
if (data == NULL)
goto trunc;
- ND_TCHECK2(*data, len);
+ ND_TCHECK_LEN(data, len);
switch (doi_id.type) {
case IPSECDOI_ID_IPV4_ADDR:
if (len < 4)
if (prop_length < item_len)
goto toolong;
- ND_TCHECK2(*cp, item_len);
+ ND_TCHECK_LEN(cp, item_len);
depth++;
ND_PRINT((ndo,"\n"));
if (sa_length < item_len)
goto toolong;
- ND_TCHECK2(*cp, item_len);
+ ND_TCHECK_LEN(cp, item_len);
depth++;
ND_PRINT((ndo,"\n"));
}
if(dumpascii) {
- ND_TCHECK2(*typedata, idtype_len);
+ ND_TCHECK_LEN(typedata, idtype_len);
for(i=0; i<idtype_len; i++) {
if(ND_ISPRINT(EXTRACT_U_1(typedata + i))) {
ND_PRINT((ndo, "%c", EXTRACT_U_1(typedata + i)));
const u_char *authdata = (const u_char*)ext + sizeof(a);
unsigned int len;
- ND_TCHECK2(*ext, sizeof(a));
+ ND_TCHECK_LEN(ext, sizeof(a));
UNALIGNED_MEMCPY(&a, ext, sizeof(a));
ikev2_pay_print(ndo, NPSTR(tpay), a.h.critical);
len = ntohs(a.h.len);
vid = (const u_char *)(ext+1);
len = ntohs(e.len) - 4;
- ND_TCHECK2(*vid, len);
+ ND_TCHECK_LEN(vid, len);
for(i=0; i<len; i++) {
if(ND_ISPRINT(EXTRACT_U_1(vid + i)))
ND_PRINT((ndo, "%c", EXTRACT_U_1(vid + i)));
}
dat = (const u_char *)(ext+1);
- ND_TCHECK2(*dat, dlen);
+ ND_TCHECK_LEN(dat, dlen);
#ifdef HAVE_LIBCRYPTO
/* try to decypt it! */
ND_TCHECK(*ext);
UNALIGNED_MEMCPY(&e, ext, sizeof(e));
- ND_TCHECK2(*ext, ntohs(e.len));
+ ND_TCHECK_LEN(ext, ntohs(e.len));
depth++;
ND_PRINT((ndo,"\n"));
ND_TCHECK(*ext);
UNALIGNED_MEMCPY(&e, ext, sizeof(e));
- ND_TCHECK2(*ext, ntohs(e.len));
+ ND_TCHECK_LEN(ext, ntohs(e.len));
depth++;
ND_PRINT((ndo,"\n"));
const u_char *bp, u_int length,
const u_char *bp2)
{
- ND_TCHECK(bp[0]);
- if(length == 1 && bp[0]==0xff) {
+ ND_TCHECK_1(bp);
+ if(length == 1 && EXTRACT_U_1(bp)==0xff) {
ND_PRINT((ndo, "isakmp-nat-keep-alive"));
return;
}
if(length < 4) {
goto trunc;
}
- ND_TCHECK(bp[3]);
+ ND_TCHECK_1(bp + 3);
/*
* see if this is an IKE packet
*/
- if(bp[0]==0 && bp[1]==0 && bp[2]==0 && bp[3]==0) {
+ if (EXTRACT_U_1(bp) == 0 && EXTRACT_U_1(bp + 1) == 0 &&
+ EXTRACT_U_1(bp + 2) == 0 && EXTRACT_U_1(bp + 3) == 0) {
ND_PRINT((ndo, "NONESP-encap: "));
isakmp_print(ndo, bp+4, length-4, bp2);
return;