diff options
Diffstat (limited to 'fs/nfs/super.c')
| -rw-r--r-- | fs/nfs/super.c | 22 |
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; |
