[PATCH net-XXX] SUNRPC: Add an IS_ERR() check back to where it was

Dan Carpenter posted 1 patch 2 years, 2 months ago
net/sunrpc/rpcb_clnt.c | 4 ++++
1 file changed, 4 insertions(+)
[PATCH net-XXX] SUNRPC: Add an IS_ERR() check back to where it was
Posted by Dan Carpenter 2 years, 2 months ago
This IS_ERR() check was deleted during in a cleanup because, at the time,
the rpcb_call_async() function could not return an error pointer.  That
changed in commit 25cf32ad5dba ("SUNRPC: Handle allocation failure in
rpc_new_task()") and now it can return an error pointer.  Put the check
back.

A related revert was done in commit 13bd90141804 ("Revert "SUNRPC:
Remove unreachable error condition"").

Fixes: 037e910b52b0 ("SUNRPC: Remove unreachable error condition in rpcb_getport_async()")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
---
It's possible Smatch was responsible for generating the original warning
because it warns for unnecessary NULL checks.  But generally, there was
a future error pointer implied.  Those warnings are just a hint, not a
command.

 net/sunrpc/rpcb_clnt.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/net/sunrpc/rpcb_clnt.c b/net/sunrpc/rpcb_clnt.c
index 5988a5c5ff3f..102c3818bc54 100644
--- a/net/sunrpc/rpcb_clnt.c
+++ b/net/sunrpc/rpcb_clnt.c
@@ -769,6 +769,10 @@ void rpcb_getport_async(struct rpc_task *task)
 
 	child = rpcb_call_async(rpcb_clnt, map, proc);
 	rpc_release_client(rpcb_clnt);
+	if (IS_ERR(child)) {
+		/* rpcb_map_release() has freed the arguments */
+		return;
+	}
 
 	xprt->stat.bind_count++;
 	rpc_put_task(child);
-- 
2.39.2
Re: [PATCH net-XXX] SUNRPC: Add an IS_ERR() check back to where it was
Posted by Simon Horman 2 years, 2 months ago
On Wed, Oct 11, 2023 at 11:00:22AM +0300, Dan Carpenter wrote:
> This IS_ERR() check was deleted during in a cleanup because, at the time,
> the rpcb_call_async() function could not return an error pointer.  That
> changed in commit 25cf32ad5dba ("SUNRPC: Handle allocation failure in
> rpc_new_task()") and now it can return an error pointer.  Put the check
> back.
> 
> A related revert was done in commit 13bd90141804 ("Revert "SUNRPC:
> Remove unreachable error condition"").
> 
> Fixes: 037e910b52b0 ("SUNRPC: Remove unreachable error condition in rpcb_getport_async()")
> Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>

Thanks,

I've reviewed the logic of this commit along with the description
and it matches up in my mind.

Reviewed-by: Simon Horman <horms@kernel.org>
Re: [PATCH net-XXX] SUNRPC: Add an IS_ERR() check back to where it was
Posted by Dan Carpenter 2 years, 2 months ago
Obviously net-XXX is not what I intended.  This applies to the nfs tree
I think.

regards,
dan carpenter