- if ((dp = parsereq(ndo, rp, length)) != NULL &&
- (dp = parsefh(ndo, dp, v3)) != NULL) {
- if (v3) {
- ND_TCHECK_4(dp + 4);
- /*
- * We shouldn't really try to interpret the
- * offset cookie here.
- */
- ND_PRINT(" %u bytes @ %" PRId64,
- EXTRACT_BE_U_4(dp + 4),
- EXTRACT_BE_U_8(dp));
- if (ndo->ndo_vflag) {
- /*
- * This displays the 8 bytes
- * of the verifier in order,
- * from the low-order byte
- * to the high-order byte.
- */
- ND_PRINT(" verf %08x%08x",
- EXTRACT_BE_U_4(dp + 2),
- EXTRACT_BE_U_4(dp + 3));
- }
- } else {
- ND_TCHECK_4(dp + 1);
- /*
- * Print the offset as signed, since -1 is
- * common, but offsets > 2^31 aren't.
- */
- ND_PRINT(" %u bytes @ %u",
- EXTRACT_BE_U_4(dp + 1),
- EXTRACT_BE_U_4(dp));
- }
- return;
- }
- break;
-
- case NFSPROC_READDIRPLUS:
- if ((dp = parsereq(ndo, rp, length)) != NULL &&
- (dp = parsefh(ndo, dp, v3)) != NULL) {
- ND_TCHECK_4(dp + 4);
+ dp = parsereq(ndo, rp, length);
+ if (dp == NULL)
+ goto trunc;
+ dp = parsefh(ndo, dp, v3);
+ if (dp == NULL)
+ goto trunc;
+ if (v3) {