- ND_TCHECK2(bp[16], sizeof(struct in_addr));
- ND_PRINT((ndo, " for %s > %s", ipaddr_string(ndo, &bp[16]),
- ipaddr_string(ndo, &bp[8])));
- if (EXTRACT_BE_32BITS(bp + 12) != 0xffffffff)
- ND_PRINT((ndo, "/%s", ipaddr_string(ndo, &bp[12])));
- ND_TCHECK2(bp[24], 4);
- ND_PRINT((ndo, " %s pref %d metric %d",
- (bp[20] & 0x80) ? "RP-tree" : "SPT",
- EXTRACT_BE_32BITS(bp + 20) & 0x7fffffff,
- EXTRACT_BE_32BITS(bp + 24)));
+ ND_TCHECK_LEN(bp + 16, sizeof(struct in_addr));
+ ND_PRINT((ndo, " for %s > %s", ipaddr_string(ndo, bp + 16),
+ ipaddr_string(ndo, bp + 8)));
+ if (EXTRACT_BE_U_4(bp + 12) != 0xffffffff)
+ ND_PRINT((ndo, "/%s", ipaddr_string(ndo, bp + 12)));
+ ND_TCHECK_4(bp + 24);
+ ND_PRINT((ndo, " %s pref %u metric %u",
+ (EXTRACT_U_1(bp + 20) & 0x80) ? "RP-tree" : "SPT",
+ EXTRACT_BE_U_4(bp + 20) & 0x7fffffff,
+ EXTRACT_BE_U_4(bp + 24)));