aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/nfs/super.c22
1 files changed, 6 insertions, 16 deletions
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index 2f7e7f20c917..4bbdbf6de417 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -2125,6 +2125,8 @@ static int nfs4_validate_mount_data(void *options,
2125 args->acdirmin = NFS_DEF_ACDIRMIN; 2125 args->acdirmin = NFS_DEF_ACDIRMIN;
2126 args->acdirmax = NFS_DEF_ACDIRMAX; 2126 args->acdirmax = NFS_DEF_ACDIRMAX;
2127 args->nfs_server.port = NFS_PORT; /* 2049 unless user set port= */ 2127 args->nfs_server.port = NFS_PORT; /* 2049 unless user set port= */
2128 args->auth_flavors[0] = RPC_AUTH_UNIX;
2129 args->auth_flavor_len = 0;
2128 2130
2129 switch (data->version) { 2131 switch (data->version) {
2130 case 1: 2132 case 1:
@@ -2140,18 +2142,13 @@ static int nfs4_validate_mount_data(void *options,
2140 &args->nfs_server.address)) 2142 &args->nfs_server.address))
2141 goto out_no_address; 2143 goto out_no_address;
2142 2144
2143 switch (data->auth_flavourlen) { 2145 if (data->auth_flavourlen) {
2144 case 0: 2146 if (data->auth_flavourlen > 1)
2145 args->auth_flavors[0] = RPC_AUTH_UNIX; 2147 goto out_inval_auth;
2146 break;
2147 case 1:
2148 if (copy_from_user(&args->auth_flavors[0], 2148 if (copy_from_user(&args->auth_flavors[0],
2149 data->auth_flavours, 2149 data->auth_flavours,
2150 sizeof(args->auth_flavors[0]))) 2150 sizeof(args->auth_flavors[0])))
2151 return -EFAULT; 2151 return -EFAULT;
2152 break;
2153 default:
2154 goto out_inval_auth;
2155 } 2152 }
2156 2153
2157 c = strndup_user(data->hostname.data, NFS4_MAXNAMLEN); 2154 c = strndup_user(data->hostname.data, NFS4_MAXNAMLEN);
@@ -2203,15 +2200,8 @@ static int nfs4_validate_mount_data(void *options,
2203 2200
2204 nfs_validate_transport_protocol(args); 2201 nfs_validate_transport_protocol(args);
2205 2202
2206 switch (args->auth_flavor_len) { 2203 if (args->auth_flavor_len > 1)
2207 case 0:
2208 args->auth_flavors[0] = RPC_AUTH_UNIX;
2209 break;
2210 case 1:
2211 break;
2212 default:
2213 goto out_inval_auth; 2204 goto out_inval_auth;
2214 }
2215 2205
2216 if (args->client_address == NULL) 2206 if (args->client_address == NULL)
2217 goto out_no_client_address; 2207 goto out_no_client_address;