return;
trunc:
nd_print_trunc(ndo);
- return;
}
static void
return;
trunc:
nd_print_trunc(ndo);
- return;
}
static void
tooshort:
ND_PRINT(" [|length too short]");
- return;
}
static void
tooshort:
ND_PRINT(" [|dao-length too short]");
- return;
}
static void
break;
case ICMP6_ECHO_REQUEST:
case ICMP6_ECHO_REPLY:
- /* The check below covers both icmp6_id and icmp6_seq. */
ND_PRINT(", id %u, seq %u", GET_BE_U_2(dp->icmp6_id),
GET_BE_U_2(dp->icmp6_seq));
break;
case 1:
break;
case 2:
- ND_TCHECK_8(opri + 1);
- memcpy(&in6, opri + 1, 8);
+ GET_CPY_BYTES(&in6, opri + 1, 8);
break;
case 3:
- ND_TCHECK_16(opri + 1);
- memcpy(&in6, opri + 1, 16);
+ GET_CPY_BYTES(&in6, opri + 1, 16);
break;
default:
goto trunc;
ND_PRINT(" [invalid number of groups]");
return;
}
- ND_TCHECK_LEN(bp + 4 + group, sizeof(nd_ipv6));
ND_PRINT(" [gaddr %s", GET_IP6ADDR_STRING(bp + group + 4));
ND_PRINT(" %s", tok2str(mldv2report2str, " [v2-report-#%u]",
GET_U_1(bp + group)));
/* Print the sources */
ND_PRINT(" {");
for (j = 0; j < nsrcs; j++) {
- ND_TCHECK_LEN(bp + group + 20 + (j * sizeof(nd_ipv6)),
- sizeof(nd_ipv6));
ND_PRINT(" %s", GET_IP6ADDR_STRING(bp + group + 20 + (j * sizeof(nd_ipv6))));
}
ND_PRINT(" }");
ND_PRINT("]");
}
}
- return;
-trunc:
- nd_print_trunc(ndo);
- return;
}
static void
if (ndo->ndo_vflag) {
ND_PRINT(" [max resp delay=%u]", mrt);
}
- ND_TCHECK_LEN(bp + 8, sizeof(nd_ipv6));
ND_PRINT(" [gaddr %s", GET_IP6ADDR_STRING(bp + 8));
if (ndo->ndo_vflag) {
- ND_TCHECK_1(bp + 25);
if (GET_U_1(bp + 24) & 0x08) {
ND_PRINT(" sflag");
}
else if (ndo->ndo_vflag > 1) {
ND_PRINT(" {");
for (i = 0; i < nsrcs; i++) {
- ND_TCHECK_LEN(bp + 28 + (i * sizeof(nd_ipv6)),
- sizeof(nd_ipv6));
ND_PRINT(" %s", GET_IP6ADDR_STRING(bp + 28 + (i * sizeof(nd_ipv6))));
}
ND_PRINT(" }");
ND_PRINT(", %u source(s)", nsrcs);
}
ND_PRINT("]");
- return;
-trunc:
- nd_print_trunc(ndo);
- return;
}
static void