- printf("mtrace %lu: %s to %s reply-to %s",
- (u_long)TR_GETQID(ntohl(tr->tr_rttlqid)),
- ipaddr_string(&tr->tr_src), ipaddr_string(&tr->tr_dst),
- ipaddr_string(&tr->tr_raddr));
- if (IN_CLASSD(ntohl(tr->tr_raddr)))
- printf(" with-ttl %d", TR_GETTTL(ntohl(tr->tr_rttlqid)));
+ ND_TCHECK_SIZE(tr);
+ if (len < 8 + sizeof (struct tr_query)) {
+ ND_PRINT(" [invalid len %u]", len);
+ return;
+ }
+ ND_PRINT("mtrace %u: %s to %s reply-to %s",
+ EXTRACT_BE_U_3(tr->tr_qid),
+ ipaddr_string(ndo, tr->tr_src), ipaddr_string(ndo, tr->tr_dst),
+ ipaddr_string(ndo, tr->tr_raddr));
+ if (IN_CLASSD(EXTRACT_BE_U_4(tr->tr_raddr)))
+ ND_PRINT(" with-ttl %u", EXTRACT_U_1(tr->tr_rttl));
+ return;
+trunc:
+ nd_print_trunc(ndo);