diff options
author | Keith Busch <kbusch@kernel.org> | 2024-03-06 17:20:30 +0300 |
---|---|---|
committer | Keith Busch <kbusch@kernel.org> | 2024-03-06 17:29:01 +0300 |
commit | 7e80eb792bd7377a20f204943ac31c77d859be89 (patch) | |
tree | 76be9f96652a818009cf268c97c068aa8351a8e3 /drivers/nvme | |
parent | 8d0d2447394b13fb22a069f0330f9c49b7fff9d3 (diff) | |
download | linux-7e80eb792bd7377a20f204943ac31c77d859be89.tar.xz |
nvme: clear caller pointer on identify failure
The memory allocated for the identification is freed on failure. Set
it to NULL so the caller doesn't have a pointer to that freed address.
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Diffstat (limited to 'drivers/nvme')
-rw-r--r-- | drivers/nvme/host/core.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index c4d928585ce3..2baf5786a92f 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -1403,8 +1403,10 @@ static int nvme_identify_ctrl(struct nvme_ctrl *dev, struct nvme_id_ctrl **id) error = nvme_submit_sync_cmd(dev->admin_q, &c, *id, sizeof(struct nvme_id_ctrl)); - if (error) + if (error) { kfree(*id); + *id = NULL; + } return error; } @@ -1533,6 +1535,7 @@ int nvme_identify_ns(struct nvme_ctrl *ctrl, unsigned nsid, if (error) { dev_warn(ctrl->device, "Identify namespace failed (%d)\n", error); kfree(*id); + *id = NULL; } return error; } |