nvme: clear the request_queue pointers on failure in nvme_alloc_io_tag_set
authorMaurizio Lombardi <mlombard@redhat.com>
Tue, 31 Jan 2023 16:38:42 +0000 (17:38 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Feb 2023 11:59:44 +0000 (12:59 +0100)
[ Upstream commit 6fbf13c0e24fd86ab2e4477cd8484a485b687421 ]

In nvme_alloc_io_tag_set(), the connect_q pointer should be set to NULL
in case of error to avoid potential invalid pointer dereferences.

Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/nvme/host/core.c

index e189ce1..5acc9ae 100644 (file)
@@ -4933,6 +4933,7 @@ int nvme_alloc_io_tag_set(struct nvme_ctrl *ctrl, struct blk_mq_tag_set *set,
 
 out_free_tag_set:
        blk_mq_free_tag_set(set);
+       ctrl->connect_q = NULL;
        return ret;
 }
 EXPORT_SYMBOL_GPL(nvme_alloc_io_tag_set);