Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6e88e061 authored by Chuck Lever's avatar Chuck Lever Committed by Trond Myklebust
Browse files

NFS: Verify server address before invoking in-kernel mount client



Re-order mount option sanity checking slightly to ensure we have a valid
server address *before* trying to do the mountd RPC call.

Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 113632d0
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -1100,6 +1100,10 @@ static int nfs_validate_mount_data(void *options,
		if (mntfh->size < sizeof(mntfh->data))
			memset(mntfh->data + mntfh->size, 0,
			       sizeof(mntfh->data) - mntfh->size);

		if (!nfs_verify_server_address((struct sockaddr *) &data->addr))
			goto out_no_address;

		/*
		 * Translate to nfs_parsed_mount_data, which nfs_fill_super
		 * can deal with.
@@ -1131,6 +1135,10 @@ static int nfs_validate_mount_data(void *options,
		if (nfs_parse_mount_options((char *)options, args) == 0)
			return -EINVAL;

		if (!nfs_verify_server_address((struct sockaddr *)
						&args->nfs_server.address))
			goto out_no_address;

		c = strchr(dev_name, ':');
		if (c == NULL)
			return -EINVAL;
@@ -1159,10 +1167,6 @@ static int nfs_validate_mount_data(void *options,
		goto out_v3_not_compiled;
#endif /* !CONFIG_NFS_V3 */

	if (!nfs_verify_server_address((struct sockaddr *)
						&args->nfs_server.address))
		goto out_no_address;

	return 0;

out_no_data: