Linux/linux 1995266fs/nfsd auth.c

nfsd: auth: Fix gid sorting when rootsquash enabled

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 at codethink.co.uk>
Acked-by: J. Bruce Fields <bfields at redhat.com>
Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
DeltaFile
+3-3fs/nfsd/auth.c
+3-31 files

UnifiedSplitRaw