NFS: Cleanup error handling in nfs_idmap_request_key()
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 20 Sep 2017 21:53:46 +0000 (00:53 +0300)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Sun, 1 Oct 2017 22:51:30 +0000 (18:51 -0400)
nfs_idmap_get_desc() can't actually return zero.  But if it did then
we would return ERR_PTR(0) which is NULL and the caller,
nfs_idmap_get_key(), doesn't expect that so it leads to a NULL pointer
dereference.

I've cleaned this up by changing the "<=" to "<" so it's more clear that
we don't return ERR_PTR(0).

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/nfs4idmap.c

index dd5d27da8c0cc5f19d96c33360400778a6a60b5c..30426c1a1bbda245b831bfbac5ff8f1aa570f71f 100644 (file)
@@ -274,7 +274,7 @@ static struct key *nfs_idmap_request_key(const char *name, size_t namelen,
        ssize_t ret;
 
        ret = nfs_idmap_get_desc(name, namelen, type, strlen(type), &desc);
-       if (ret <= 0)
+       if (ret < 0)
                return ERR_PTR(ret);
 
        rkey = request_key(&key_type_id_resolver, desc, "");