SUNRPC: Fix missing release socket in rpc_sockname()
authorWang ShaoBo <bobo.shaobowang@huawei.com>
Thu, 24 Nov 2022 09:23:42 +0000 (17:23 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:32:23 +0000 (13:32 +0100)
[ Upstream commit 50fa355bc0d75911fe9d5072a5ba52cdb803aff7 ]

socket dynamically created is not released when getting an unintended
address family type in rpc_sockname(), direct to out_release for calling
sock_release().

Fixes: 2e738fdce22f ("SUNRPC: Add API to acquire source address")
Signed-off-by: Wang ShaoBo <bobo.shaobowang@huawei.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/sunrpc/clnt.c

index 993acf3..0b0b9f1 100644 (file)
@@ -1442,7 +1442,7 @@ static int rpc_sockname(struct net *net, struct sockaddr *sap, size_t salen,
                break;
        default:
                err = -EAFNOSUPPORT;
-               goto out;
+               goto out_release;
        }
        if (err < 0) {
                dprintk("RPC:       can't bind UDP socket (%d)\n", err);