Report an invalid packet as invalid with a reason, not truncated.
GET_BE_U_4(dp0->ip6r0_reserved));
}
- if (len % 2 == 1)
- goto trunc;
+ if (len % 2 == 1) {
+ ND_PRINT(" (invalid length %u)", len);
+ goto invalid;
+ }
len >>= 1;
p = (const u_char *) dp0->ip6r0_addr;
for (i = 0; i < len; i++) {
ND_PRINT(", tag=%x", GET_BE_U_2(srh->srh_tag));
- if (len % 2 == 1)
- goto trunc;
+ if (len % 2 == 1) {
+ ND_PRINT(" (invalid length %u)", len);
+ goto invalid;
+ }
len >>= 1;
p = (const u_char *) srh->srh_segments;
for (i = 0; i < len; i++) {
return((GET_U_1(srh->srh_len) + 1) << 3);
break;
default:
- goto trunc;
- break;
+ ND_PRINT(" (unknown type)");
+ goto invalid;
}
- trunc:
- nd_print_trunc(ndo);
+invalid:
+ nd_print_invalid(ndo);
return -1;
}