NFS: Fix NFSv2 security settings
authorChuck Lever <chuck.lever@oracle.com>
Thu, 10 Aug 2017 20:41:31 +0000 (16:41 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Sun, 20 Aug 2017 16:43:34 +0000 (12:43 -0400)
commit53a75f22e78a601321c2e1fd16266ecdae2f2309
tree29e1691dc4353792cf2793934a817756da1bbe64
parentb79e87e070476e16b1d687e5ccc2da6db1a839dc
NFS: Fix NFSv2 security settings

For a while now any NFSv2 mount where sec= is specified uses
AUTH_NULL. If sec= is not specified, the mount uses AUTH_UNIX.
Commit e68fd7c8071d ("mount: use sec= that was specified on the
command line") attempted to address a very similar problem with
NFSv3, and should have fixed this too, but it has a bug.

The MNTv1 MNT procedure does not return a list of security flavors,
so our client makes up a list containing just AUTH_NULL. This should
enable nfs_verify_authflavors() to assign the sec= specified flavor,
but instead, it incorrectly sets it to AUTH_NULL.

I expect this would also be a problem for any NFSv3 server whose
MNTv3 MNT procedure returned a security flavor list containing only
AUTH_NULL.

Fixes: e68fd7c8071d ("mount: use sec= that was specified on ... ")
BugLink: https://bugzilla.linux-nfs.org/show_bug.cgi?id=310
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/super.c