if (in >= maxbuf)
return(-1); /* name goes past the end of the buffer */
ND_TCHECK2(*in, 1);
- len = (*in++) / 2;
+ len = EXTRACT_8BITS(in) / 2;
+ in++;
*out=0;
ND_TCHECK2(*p, 2);
if ((p + 1) >= maxbuf)
return(NULL); /* name goes past the end of the buffer */
- l = EXTRACT_16BITS(p) & 0x3FFF;
+ l = EXTRACT_BE_16BITS(p) & 0x3FFF;
if (l == 0) {
/* We have a pointer that points to itself. */
return(NULL);
{
unsigned int x;
ND_TCHECK2(buf[0], 2);
- x = reverse ? EXTRACT_16BITS(buf) :
+ x = reverse ? EXTRACT_BE_16BITS(buf) :
EXTRACT_LE_16BITS(buf);
ND_PRINT((ndo, "%d (0x%x)", x, x));
buf += 2;
{
unsigned int x;
ND_TCHECK2(buf[0], 4);
- x = reverse ? EXTRACT_32BITS(buf) :
+ x = reverse ? EXTRACT_BE_32BITS(buf) :
EXTRACT_LE_32BITS(buf);
ND_PRINT((ndo, "%d (0x%x)", x, x));
buf += 4;
{
uint64_t x;
ND_TCHECK2(buf[0], 8);
- x = reverse ? EXTRACT_64BITS(buf) :
+ x = reverse ? EXTRACT_BE_64BITS(buf) :
EXTRACT_LE_64BITS(buf);
ND_PRINT((ndo, "%" PRIu64 " (0x%" PRIx64 ")", x, x));
buf += 8;
uint32_t x1, x2;
uint64_t x;
ND_TCHECK2(buf[0], 8);
- x1 = reverse ? EXTRACT_32BITS(buf) :
+ x1 = reverse ? EXTRACT_BE_32BITS(buf) :
EXTRACT_LE_32BITS(buf);
- x2 = reverse ? EXTRACT_32BITS(buf + 4) :
+ x2 = reverse ? EXTRACT_BE_32BITS(buf + 4) :
EXTRACT_LE_32BITS(buf + 4);
x = (((uint64_t)x1) << 32) | x2;
ND_PRINT((ndo, "%" PRIu64 " (0x%" PRIx64 ")", x, x));
{
unsigned int x;
ND_TCHECK2(buf[0], 2);
- x = reverse ? EXTRACT_16BITS(buf) :
+ x = reverse ? EXTRACT_BE_16BITS(buf) :
EXTRACT_LE_16BITS(buf);
ND_PRINT((ndo, "0x%X", x));
buf += 2;
{
unsigned int x;
ND_TCHECK2(buf[0], 4);
- x = reverse ? EXTRACT_32BITS(buf) :
+ x = reverse ? EXTRACT_BE_32BITS(buf) :
EXTRACT_LE_32BITS(buf);
ND_PRINT((ndo, "0x%X", x));
buf += 4;
case 'd':
ND_TCHECK2(buf[0], 2);
- stringlen = reverse ? EXTRACT_16BITS(buf) :
+ stringlen = reverse ? EXTRACT_BE_16BITS(buf) :
EXTRACT_LE_16BITS(buf);
ND_PRINT((ndo, "%u", stringlen));
buf += 2;
case 'D':
ND_TCHECK2(buf[0], 4);
- stringlen = reverse ? EXTRACT_32BITS(buf) :
+ stringlen = reverse ? EXTRACT_BE_32BITS(buf) :
EXTRACT_LE_32BITS(buf);
ND_PRINT((ndo, "%u", stringlen));
buf += 4;
{
int l = atoi(fmt + 1);
ND_TCHECK2(*buf, l);
- while (l--)
- ND_PRINT((ndo, "%02x", *buf++));
+ while (l--) {
+ ND_PRINT((ndo, "%02x", EXTRACT_8BITS(buf)));
+ buf++;
+ }
fmt++;
while (isdigit((unsigned char)*fmt))
fmt++;