nfsd: take xattr bits into account for permission checks
Since the NFSv4.2 extended attributes extension defines 3 new access bits for xattr operations, take them in to account when validating what the client is asking for, and when checking permissions. Signed-off-by: Frank van der Linden <fllinden@amazon.com> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:

committed by
Chuck Lever

parent
32119446bb
commit
c11d7fd1b3
@@ -566,8 +566,14 @@ nfsd4_access(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
|
||||
union nfsd4_op_u *u)
|
||||
{
|
||||
struct nfsd4_access *access = &u->access;
|
||||
u32 access_full;
|
||||
|
||||
if (access->ac_req_access & ~NFS3_ACCESS_FULL)
|
||||
access_full = NFS3_ACCESS_FULL;
|
||||
if (cstate->minorversion >= 2)
|
||||
access_full |= NFS4_ACCESS_XALIST | NFS4_ACCESS_XAREAD |
|
||||
NFS4_ACCESS_XAWRITE;
|
||||
|
||||
if (access->ac_req_access & ~access_full)
|
||||
return nfserr_inval;
|
||||
|
||||
access->ac_resp_access = access->ac_req_access;
|
||||
|
Reference in New Issue
Block a user