android_kernel_oneplus_msm8998/fs/nfsd
Ben Hutchings 3f84339bd3 nfsd: auth: Fix gid sorting when rootsquash enabled
commit 1995266727fa8143897e89b55f5d3c79aa828420 upstream.

Commit bdcf0a423ea1 ("kernel: make groups_sort calling a responsibility
group_info allocators") appears to break nfsd rootsquash in a pretty
major way.

It adds a call to groups_sort() inside the loop that copies/squashes
gids, which means the valid gids are sorted along with the following
garbage.  The net result is that the highest numbered valid gids are
replaced with any lower-valued garbage gids, possibly including 0.

We should sort only once, after filling in all the gids.

Fixes: bdcf0a423ea1 ("kernel: make groups_sort calling a responsibility ...")
Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
Acked-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Wolfgang Walter <linux@stwm.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-01-31 12:06:14 +01:00
..
acl.h nfsd4: remove nfs4_acl_new 2014-07-08 17:14:27 -04:00
auth.c nfsd: auth: Fix gid sorting when rootsquash enabled 2018-01-31 12:06:14 +01:00
auth.h nfsd: Remove nfsd_luid, nfsd_lgid, nfsd_ruid and nfsd_rgid 2013-02-13 06:15:51 -08:00
blocklayout.c fs: add i_blocksize() 2017-06-14 13:16:24 +02:00
blocklayoutxdr.c pnfs: move common blocklayout XDR defintions to nfs4.h 2015-08-17 13:22:49 -05:00
blocklayoutxdr.h pnfs: move common blocklayout XDR defintions to nfs4.h 2015-08-17 13:22:49 -05:00
cache.h nfsd: Remove the cache_hash list 2014-08-17 12:00:12 -04:00
current_stateid.h nfsd41: use current stateid by value 2012-02-15 11:20:45 -05:00
export.c sunrpc/nfsd: Remove redundant code by exports seq_operations functions 2015-08-13 08:59:02 -04:00
export.h nfsd: include linux/nfs4.h in export.h 2015-08-13 10:21:21 -04:00
fault_inject.c nfsd: remove old fault injection infrastructure 2014-08-05 10:55:10 -04:00
idmap.h nfsd: Remove duplicate define of IDMAP_NAMESZ/IDMAP_TYPE_xx 2015-07-20 14:58:46 -04:00
Kconfig Merge branch 'for-4.1' of git://linux-nfs.org/~bfields/linux 2015-04-24 07:46:05 -07:00
lockd.c
Makefile nfsd: pNFS block layout driver 2015-02-05 14:35:18 +01:00
netns.h nfsd: New counter for generating client confirm verifier 2015-08-10 16:05:47 -04:00
nfs2acl.c nfsd: check permissions when setting ACLs 2016-07-27 09:47:30 -07:00
nfs3acl.c nfsd: check permissions when setting ACLs 2016-07-27 09:47:30 -07:00
nfs3proc.c VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
nfs3xdr.c nfsd: stricter decoding of write-like NFSv2/v3 ops 2017-05-08 07:46:02 +02:00
nfs4acl.c nfsd: check permissions when setting ACLs 2016-07-27 09:47:30 -07:00
nfs4callback.c nfsd/callback: Cleanup callback cred on shutdown 2017-10-21 17:09:06 +02:00
nfs4idmap.c nfsd: Remove duplicate define of IDMAP_NAMESZ/IDMAP_TYPE_xx 2015-07-20 14:58:46 -04:00
nfs4layouts.c NFSD: Fix a null reference case in find_or_create_lock_stateid() 2017-02-09 08:02:45 +01:00
nfs4proc.c nfsd4: fix null dereference on replay 2017-06-14 13:16:21 +02:00
nfs4recover.c nfsd: don't WARN/backtrace for invalid container deployment. 2015-08-31 16:32:08 -04:00
nfs4state.c nfsd: Fix another OPEN stateid race 2017-12-05 11:22:52 +01:00
nfs4xdr.c nfsd: Limit end of page list when decoding NFSv4 WRITE 2017-08-30 10:19:25 +02:00
nfscache.c nfsd: remove recurring workqueue job to clean DRC 2015-11-10 09:25:51 -05:00
nfsctl.c nfsd: fix nsfd startup race triggering BUG_ON 2015-04-21 16:16:03 -04:00
nfsd.h nfsd: eliminate NFSD_DEBUG 2015-04-21 16:16:02 -04:00
nfsfh.c nfsd: switch unsigned char flags in svc_fh to bools 2015-10-12 17:31:04 -04:00
nfsfh.h nfsd: switch unsigned char flags in svc_fh to bools 2015-10-12 17:31:04 -04:00
nfsproc.c nfsd: Disable NFSv2 timestamp workaround for NFSv3+ 2015-05-29 11:04:01 -04:00
nfssvc.c NFSD: fix nfsd_reset_versions for NFSv4. 2017-12-20 10:04:53 +01:00
nfsxdr.c nfsd: stricter decoding of write-like NFSv2/v3 ops 2017-05-08 07:46:02 +02:00
pnfs.h nfsd4: fix v3-less build 2015-02-16 11:43:13 -05:00
state.h nfsd/callback: Cleanup callback cred on shutdown 2017-10-21 17:09:06 +02:00
stats.c nfsd: move <linux/nfsd/stats.h> to fs/nfsd 2014-05-06 17:54:55 -04:00
stats.h nfsd: move <linux/nfsd/stats.h> to fs/nfsd 2014-05-06 17:54:55 -04:00
trace.c nfsd: move include of state.h from trace.c to trace.h 2015-10-23 15:57:29 -04:00
trace.h nfsd: move include of state.h from trace.c to trace.h 2015-10-23 15:57:29 -04:00
vfs.c nfsd: special case truncates some more 2017-03-12 06:37:30 +01:00
vfs.h nfsd: switch unsigned char flags in svc_fh to bools 2015-10-12 17:31:04 -04:00
xdr.h nfsd: handle vfs_getattr errors in acl protocol 2013-02-26 02:46:09 -05:00
xdr3.h nfsd: fix encode_entryplus_baggage stack usage 2014-01-23 13:50:27 -05:00
xdr4.h nfsd: switch unsigned char flags in svc_fh to bools 2015-10-12 17:31:04 -04:00
xdr4cb.h nfsd: implement pNFS layout recalls 2015-02-02 18:09:43 +01:00