ndo->ndo_protocol = "arcnet";
if (caplen < ARC_HDRLEN) {
- nd_print_trunc(ndo);
ndo->ndo_ll_hdr_len += caplen;
- return;
+ nd_trunc_longjmp(ndo);
}
ap = (const struct arc_header *)p;
if (caplen < ARC_HDRNEWLEN) {
arcnet_print(ndo, p, length, 0, 0, 0);
ND_PRINT(" phds");
- nd_print_trunc(ndo);
ndo->ndo_ll_hdr_len += caplen;
- return;
+ nd_trunc_longjmp(ndo);
}
flag = GET_U_1(ap->arc_flag);
if (caplen < ARC_HDRNEWLEN_EXC) {
arcnet_print(ndo, p, length, 0, 0, 0);
ND_PRINT(" phds extended");
- nd_print_trunc(ndo);
ndo->ndo_ll_hdr_len += caplen;
- return;
+ nd_trunc_longjmp(ndo);
}
flag = GET_U_1(ap->arc_flag2);
seqid = GET_BE_U_2(ap->arc_seqid2);
ndo->ndo_protocol = "arcnet_linux";
if (caplen < ARC_LINUX_HDRLEN) {
- nd_print_trunc(ndo);
ndo->ndo_ll_hdr_len += caplen;
- return;
+ nd_trunc_longjmp(ndo);
}
ap = (const struct arc_linux_header *)p;
default:
archdrlen = ARC_LINUX_HDRNEWLEN;
if (caplen < ARC_LINUX_HDRNEWLEN) {
- nd_print_trunc(ndo);
ndo->ndo_ll_hdr_len += caplen;
- return;
+ nd_trunc_longjmp(ndo);
}
break;
case ARCTYPE_IP_OLD: