/* print the bit string as a hex string */
ND_PRINT("\\[x");
for (bitp = cp + 1, b = bitlen; bitp < lim && b > 7; b -= 8, bitp++) {
- ND_TCHECK_1(bitp);
ND_PRINT("%02x", GET_U_1(bitp));
}
if (b > 4) {
- ND_TCHECK_1(bitp);
tc = GET_U_1(bitp);
bitp++;
ND_PRINT("%02x", tc & (0xff << (8 - b)));
} else if (b > 0) {
- ND_TCHECK_1(bitp);
tc = GET_U_1(bitp);
bitp++;
ND_PRINT("%1x", ((tc >> 4) & 0x0f) & (0x0f << (4 - b)));
}
ND_PRINT("/%u]", bitlen);
return lim;
-trunc:
- ND_PRINT(".../%u]", bitlen);
- return NULL;
}
static int
if (cp + 1 > ndo->ndo_snapend)
goto print;
if (type == T_OPT) {
- rcode |= (*cp << 4);
+ rcode |= (GET_U_1(cp) << 4);
goto print;
}
cp += 4;