HomeFreeBSD

nfsd: Fix the failure return for non-fh NFSv4 operations

Description

nfsd: Fix the failure return for non-fh NFSv4 operations

Without this patch, nfsd_checkrootexp() returns failure
and then the NFSv4 operation would reply NFSERR_WRONGSEC.
RFC5661 Sec. 2.6 only allows a few NFSv4 operations, none
of which call nfsv4_checktootexp(), to return NFSERR_WRONGSEC.
This patch modifies nfsd_checkrootexp() to return the
error instead of a boolean and sets the returned error to an RPC
layer AUTH_ERR, as discussed on nfsv4@ietf.org.
The patch also fixes nfsd_errmap() so that the pseudo
error NFSERR_AUTHERR is handled correctly such that an RPC layer
AUTH_ERR is replied to the NFSv4 client.

The two new "enum auth_stat" values have not yet been assigned
by IANA, but are the expected next two values.

The effect on extant NFSv4 clients of this change appears
limited to reporting a different failure error when a
mount that does not use adequate security is attempted.

(cherry picked from commit 984c71f90300906e106b9714af0e7d9b542c50e6)

Details

Provenance
rmacklemAuthored on Jun 2 2021, 10:28 PM
Parents
rG0da79992428f: nfsd: Delete extraneous NFSv4 root checks
Branches
Unknown
Tags
Unknown