summaryrefslogtreecommitdiffstats
path: root/utils/mountd
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@citi.umich.edu>2009-08-24 08:20:10 -0400
committerSteve Dickson <steved@redhat.com>2009-08-24 08:20:10 -0400
commit9999c036952eced407162c394ea69145752ea5c4 (patch)
tree3ac015d528cb259dc23e32d2072234f1bd236e10 /utils/mountd
parentfd51c0c39017f44ceec4229f86eaa7c8e193ebdc (diff)
downloadnfs-utils-9999c036952eced407162c394ea69145752ea5c4.tar.gz
nfs-utils-9999c036952eced407162c394ea69145752ea5c4.tar.xz
nfs-utils-9999c036952eced407162c394ea69145752ea5c4.zip
Don't give client an empty flavor list
In the absence of an explicit sec= option on an export, rpc.mountd is returning a zero-length flavor list to clients in the MOUNT results. The linux client doesn't seem to mind, but the Solaris client (reasonably enough) is giving up; the symptom is a "security mode does not match" error on mount. We could modify the export-parsing code to ensure the secinfo array is nonzero. But I think it's slightly simpler to handle this default case in the implementation of the MOUNT call. This is more-or-less the same thing the kernel does when mountd passes it an export without any security flavors specified. Thanks to Tom Haynes for bug report and diagnosis. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'utils/mountd')
-rw-r--r--utils/mountd/mountd.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/utils/mountd/mountd.c b/utils/mountd/mountd.c
index b59f939..888fd8c 100644
--- a/utils/mountd/mountd.c
+++ b/utils/mountd/mountd.c
@@ -359,6 +359,11 @@ static void set_authflavors(struct mountres3_ok *ok, nfs_export *exp)
flavors[i] = s->flav->fnum;
i++;
}
+ if (i == 0) {
+ /* default when there is no sec= option: */
+ i = 1;
+ flavors[0] = AUTH_UNIX;
+ }
ok->auth_flavors.auth_flavors_val = flavors;
ok->auth_flavors.auth_flavors_len = i;
}