nfsd: fix an IS_ERR() vs NULL check
diff mbox series

Message ID 20190104064703.GB30627@kadam
State New
Headers show
Series
  • nfsd: fix an IS_ERR() vs NULL check
Related show

Commit Message

Dan Carpenter Jan. 4, 2019, 6:47 a.m. UTC
The get_backchannel_cred() used to return error pointers on error but
now it returns NULL pointers.

Fixes: 97f68c6b02e0 ("SUNRPC: add 'struct cred *' to auth_cred and rpc_cre")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
 fs/nfsd/nfs4callback.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

J. Bruce Fields Jan. 4, 2019, 3:03 p.m. UTC | #1
On Fri, Jan 04, 2019 at 09:47:03AM +0300, Dan Carpenter wrote:
> The get_backchannel_cred() used to return error pointers on error but
> now it returns NULL pointers.

Thanks!  Queueing up for 4.21 and stable.

Off the top of my head I don't recall bug reports that could be
explained by this.  Perhaps it's hard to get a failure at this point
without failing somewhere earlier?  But I think it's likely possible to
trigger a NULL dereference somehow.

--b.

> 
> Fixes: 97f68c6b02e0 ("SUNRPC: add 'struct cred *' to auth_cred and rpc_cre")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> ---
>  fs/nfsd/nfs4callback.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c
> index c74e4538d0eb..9b38dab1c21b 100644
> --- a/fs/nfsd/nfs4callback.c
> +++ b/fs/nfsd/nfs4callback.c
> @@ -913,9 +913,9 @@ static int setup_callback_client(struct nfs4_client *clp, struct nfs4_cb_conn *c
>  		return PTR_ERR(client);
>  	}
>  	cred = get_backchannel_cred(clp, client, ses);
> -	if (IS_ERR(cred)) {
> +	if (!cred) {
>  		rpc_shutdown_client(client);
> -		return PTR_ERR(cred);
> +		return -ENOMEM;
>  	}
>  	clp->cl_cb_client = client;
>  	clp->cl_cb_cred = cred;
> -- 
> 2.17.1

Patch
diff mbox series

diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c
index c74e4538d0eb..9b38dab1c21b 100644
--- a/fs/nfsd/nfs4callback.c
+++ b/fs/nfsd/nfs4callback.c
@@ -913,9 +913,9 @@  static int setup_callback_client(struct nfs4_client *clp, struct nfs4_cb_conn *c
 		return PTR_ERR(client);
 	}
 	cred = get_backchannel_cred(clp, client, ses);
-	if (IS_ERR(cred)) {
+	if (!cred) {
 		rpc_shutdown_client(client);
-		return PTR_ERR(cred);
+		return -ENOMEM;
 	}
 	clp->cl_cb_client = client;
 	clp->cl_cb_cred = cred;