- ND_PRINT((ndo, " %u/%s:%u (max %u/%s:%u) ",
- EXTRACT_32BITS(&id->pi_ps.slot),
- ipaddr_string(ndo, &id->pi_ps.page.p_sid),
- EXTRACT_32BITS(&id->pi_ps.page.p_uid),
- EXTRACT_32BITS(&id->pi_mslot),
- ipaddr_string(ndo, &id->pi_mpage.p_sid),
- EXTRACT_32BITS(&id->pi_mpage.p_uid)));
-
- nid = EXTRACT_16BITS(&id->pi_ps.nid);
+ ND_PRINT(" %u/%s:%u (max %u/%s:%u) ",
+ GET_BE_U_4(id->pi_ps.slot),
+ GET_IPADDR_STRING(id->pi_ps.page.p_sid),
+ GET_BE_U_4(id->pi_ps.page.p_uid),
+ GET_BE_U_4(id->pi_mslot),
+ GET_IPADDR_STRING(id->pi_mpage.p_sid),
+ GET_BE_U_4(id->pi_mpage.p_uid));
+ /* now the rest of the fixed-size part of struct pkt_id */
+ ND_TCHECK_SIZE(id);
+
+ nid = GET_BE_U_2(id->pi_ps.nid);
+ if (len < sizeof(*io) * nid)
+ return (-1);