blob: dd95de02ad8c99c8fc054ef08f5fef1a8d8d4c0a [file] [log] [blame]
From 19a66b572e012aecc2c272589beee4442335d5ee Mon Sep 17 00:00:00 2001
From: Sun Ke <sunke32@huawei.com>
Date: Tue, 19 Nov 2019 14:09:11 +0800
Subject: [PATCH] nbd:fix memory leak in nbd_get_socket()
commit dff10bbea4be47bdb615b036c834a275b7c68133 upstream.
Before returning NULL, put the sock first.
Cc: stable@vger.kernel.org
Fixes: cf1b2326b734 ("nbd: verify socket is supported during setup")
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: Mike Christie <mchristi@redhat.com>
Signed-off-by: Sun Ke <sunke32@huawei.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index 80fe62139a9c..cc83ef2373f3 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -954,6 +954,7 @@ static struct socket *nbd_get_socket(struct nbd_device *nbd, unsigned long fd,
if (sock->ops->shutdown == sock_no_shutdown) {
dev_err(disk_to_dev(nbd->disk), "Unsupported socket: shutdown callout must be supported.\n");
*err = -EINVAL;
+ sockfd_put(sock);
return NULL;
}
--
2.7.4