summaryrefslogtreecommitdiffstats
path: root/fs/nfs
diff options
context:
space:
mode:
authorPeng Tao <tao.peng@primarydata.com>2014-07-08 11:45:48 +0800
committerTrond Myklebust <trond.myklebust@primarydata.com>2014-07-08 14:30:03 -0400
commit31434f496abb9f3410b10f541462fe58613dd3ad (patch)
tree29c03f1c95c2db782707df4fa9d834dd9a90acde /fs/nfs
parenta363e32e9459a0c5b199db9afa4b7dc143106012 (diff)
downloadlinux-31434f496abb9f3410b10f541462fe58613dd3ad.tar.bz2
nfs: check hostname in nfs_get_client
We reference cl_hostname in many places. Add a check to make sure it exists. Signed-off-by: Peng Tao <tao.peng@primarydata.com> Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs/nfs')
-rw-r--r--fs/nfs/client.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index 1d09289c8f0e..b213ee8fb012 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -482,8 +482,13 @@ nfs_get_client(const struct nfs_client_initdata *cl_init,
struct nfs_net *nn = net_generic(cl_init->net, nfs_net_id);
const struct nfs_rpc_ops *rpc_ops = cl_init->nfs_mod->rpc_ops;
+ if (cl_init->hostname == NULL) {
+ WARN_ON(1);
+ return NULL;
+ }
+
dprintk("--> nfs_get_client(%s,v%u)\n",
- cl_init->hostname ?: "", rpc_ops->version);
+ cl_init->hostname, rpc_ops->version);
/* see if the client already exists */
do {
@@ -510,7 +515,7 @@ nfs_get_client(const struct nfs_client_initdata *cl_init,
} while (!IS_ERR(new));
dprintk("<-- nfs_get_client() Failed to find %s (%ld)\n",
- cl_init->hostname ?: "", PTR_ERR(new));
+ cl_init->hostname, PTR_ERR(new));
return new;
}
EXPORT_SYMBOL_GPL(nfs_get_client);