Skip to content

Commit 9ac6fc0

Browse files
rmacklemchucklever
authored andcommitted
NFSD: Do not allow NFSv4 (N)VERIFY to check POSIX ACL attributes
Section 9.3 of draft-ietf-nfsv4-posix-acls-00 prohibits use of the POSIX ACL attributes with VERIFY and NVERIFY operations: the server MUST reply NFS4ERR_INVAL when a client attempts this. Beyond the protocol requirement, comparison of POSIX draft ACLs via (N)VERIFY presents an implementation challenge. Clients are not required to order the ACEs within a POSIX ACL in any particular way, making reliable attribute comparison impractical. Return nfserr_inval when the client requests FATTR4_POSIX_ACCESS_ACL or FATTR4_POSIX_DEFAULT_ACL in a VERIFY or NVERIFY operation. Signed-off-by: Rick Macklem <rmacklem@uoguelph.ca> Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
1 parent 97e9a9e commit 9ac6fc0

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

fs/nfsd/nfs4proc.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2380,6 +2380,11 @@ _nfsd4_verify(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
23802380
if (verify->ve_attrlen & 3)
23812381
return nfserr_inval;
23822382

2383+
/* The POSIX draft ACLs cannot be tested via (N)VERIFY. */
2384+
if (verify->ve_bmval[2] & (FATTR4_WORD2_POSIX_DEFAULT_ACL |
2385+
FATTR4_WORD2_POSIX_ACCESS_ACL))
2386+
return nfserr_inval;
2387+
23832388
/* count in words:
23842389
* bitmap_len(1) + bitmap(2) + attr_len(1) = 4
23852390
*/

0 commit comments

Comments
 (0)