]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/sunrpc/rpcb_clnt.c
SUNRPC: Fix a memory leak in rpcb_getport_async
[linux-2.6-omap-h63xx.git] / net / sunrpc / rpcb_clnt.c
index 172935b046de5a85802e0cc9ea8905b45f9b9531..0a22f00734a4ba1024cde9c5337e3e5b89168e76 100644 (file)
@@ -580,7 +580,7 @@ void rpcb_getport_async(struct rpc_task *task)
                status = -ENOMEM;
                dprintk("RPC: %5u %s: no memory available\n",
                        task->tk_pid, __func__);
-               goto bailout_nofree;
+               goto bailout_release_client;
        }
        map->r_prog = clnt->cl_prog;
        map->r_vers = clnt->cl_vers;
@@ -605,6 +605,8 @@ void rpcb_getport_async(struct rpc_task *task)
        rpc_put_task(child);
        return;
 
+bailout_release_client:
+       rpc_release_client(rpcb_clnt);
 bailout_nofree:
        rpcb_wake_rpcbind_waiters(xprt, status);
        task->tk_status = status;