linux/fs/nfsd
Ben Hutchings 999653786d nfsd: check permissions when setting ACLs
Use set_posix_acl, which includes proper permission checks, instead of
calling ->set_acl directly.  Without this anyone may be able to grant
themselves permissions to a file by setting the ACL.

Lock the inode to make the new checks atomic with respect to set_acl.
(Also, nfsd was the only caller of set_acl not locking the inode, so I
suspect this may fix other races.)

This also simplifies the code, and ensures our ACLs are checked by
posix_acl_valid.

The permission checks and the inode locking were lost with commit
4ac7249e, which changed nfsd to use the set_acl inode operation directly
instead of going through xattr handlers.

Reported-by: David Sinquin <david@sinquin.eu>
[agreunba@redhat.com: use set_posix_acl]
Fixes: 4ac7249e
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: stable@vger.kernel.org
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2016-06-24 12:11:52 -04:00
..
Kconfig nfsd: block and scsi layout drivers need to depend on CONFIG_BLOCK 2016-03-18 11:42:54 -04:00
Makefile nfsd: add SCSI layout support 2016-03-18 11:42:53 -04:00
acl.h
auth.c
auth.h
blocklayout.c nfsd: Fix NFSD_MDS_PR_KEY on 32-bit by adding ULL postfix 2016-06-14 11:50:04 -04:00
blocklayoutxdr.c nfsd: better layoutupdate bounds-checking 2016-03-22 14:39:35 -04:00
blocklayoutxdr.h nfsd: add SCSI layout support 2016-03-18 11:42:53 -04:00
cache.h
current_stateid.h
export.c
export.h
fault_inject.c
idmap.h
lockd.c
netns.h
nfs2acl.c nfsd: check permissions when setting ACLs 2016-06-24 12:11:52 -04:00
nfs3acl.c nfsd: check permissions when setting ACLs 2016-06-24 12:11:52 -04:00
nfs3proc.c don't bother with ->d_inode->i_sb - it's always equal to ->d_sb 2016-04-10 17:11:51 -04:00
nfs3xdr.c A very quiet cycle for nfsd, mainly just an RDMA update from Chuck Lever. 2016-05-24 14:39:20 -07:00
nfs4acl.c nfsd: check permissions when setting ACLs 2016-06-24 12:11:52 -04:00
nfs4callback.c nfsd4/rpc: move backchannel create logic into rpc code 2016-06-15 10:32:25 -04:00
nfs4idmap.c
nfs4layouts.c nfsd: handle seqid wraparound in nfsd4_preprocess_layout_stateid 2016-05-13 15:34:47 -04:00
nfs4proc.c nfsd: add SCSI layout support 2016-03-18 11:42:53 -04:00
nfs4recover.c Various bugfixes, a RDMA update from Chuck Lever, and support for a new 2016-03-24 10:41:00 -07:00
nfs4state.c nfsd: Make init_open_stateid() a bit more whole 2016-06-15 22:03:53 -04:00
nfs4xdr.c nfsd: use short read as well as i_size to set eof 2016-03-23 16:02:39 -04:00
nfscache.c
nfsctl.c
nfsd.h
nfsfh.c don't bother with ->d_inode->i_sb - it's always equal to ->d_sb 2016-04-10 17:11:51 -04:00
nfsfh.h
nfsproc.c
nfssvc.c
nfsxdr.c
pnfs.h nfsd: add SCSI layout support 2016-03-18 11:42:53 -04:00
state.h nfsd: Always lock state exclusively. 2016-06-15 22:03:31 -04:00
stats.c
stats.h
trace.c
trace.h
vfs.c nfsd: use RWF_SYNC 2016-05-01 19:58:39 -04:00
vfs.h nfsd: use short read as well as i_size to set eof 2016-03-23 16:02:39 -04:00
xdr.h
xdr3.h
xdr4.h
xdr4cb.h