NFSv4: Fix a bug in nfs4_validate_mount_data()
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 21 Sep 2007 00:23:51 +0000 (20:23 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 9 Oct 2007 21:17:31 +0000 (17:17 -0400)
The previous patch introduced a bug when copying the server address.

Also clarify a copy into the auth_flavours array: currently the two
size calculations are equivalent, but we may decide to change the size
of auth_flavors[] at some point.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/super.c

index 63742bb..3804aad 100644 (file)
@@ -1541,7 +1541,7 @@ static int nfs4_validate_mount_data(void *options,
                        goto out_no_address;
                if (copy_from_user(&args->nfs_server.address,
                                   data->host_addr,
-                                  sizeof(&args->nfs_server.address)))
+                                  sizeof(args->nfs_server.address)))
                        return -EFAULT;
                if (args->nfs_server.address.sin_port == 0)
                        args->nfs_server.address.sin_port = htons(NFS_PORT);
@@ -1554,9 +1554,9 @@ static int nfs4_validate_mount_data(void *options,
                        args->auth_flavors[0] = RPC_AUTH_UNIX;
                        break;
                case 1:
-                       if (copy_from_user(args->auth_flavors,
+                       if (copy_from_user(&args->auth_flavors[0],
                                           data->auth_flavours,
-                                          sizeof(args->auth_flavors)))
+                                          sizeof(args->auth_flavors[0])))
                                return -EFAULT;
                        break;
                default: