[PATCH] nvmet: fix a memory leak in controller identify
Nilay Shroff
nilay at linux.ibm.com
Fri Jan 24 06:13:35 PST 2025
On 1/24/25 4:30 PM, Sagi Grimberg wrote:
> Simply free an allocated buffer once we copied its content
> to the request sgl.
>
> kmemleak complaint:
> unreferenced object 0xffff8cd40c388000 (size 4096):
> comm "kworker/2:2H", pid 14739, jiffies 4401313113
> hex dump (first 32 bytes):
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> backtrace (crc 0):
> [<ffffffff9e01087a>] kmemleak_alloc+0x4a/0x90
> [<ffffffff9d30324a>] __kmalloc_cache_noprof+0x35a/0x420
> [<ffffffffc180b0e2>] nvmet_execute_identify+0x912/0x9f0 [nvmet]
> [<ffffffffc181a72c>] nvmet_tcp_try_recv_pdu+0x84c/0xc90 [nvmet_tcp]
> [<ffffffffc181ac02>] nvmet_tcp_io_work+0x82/0x8b0 [nvmet_tcp]
> [<ffffffff9cfa7158>] process_one_work+0x178/0x3e0
> [<ffffffff9cfa8e9c>] worker_thread+0x2ec/0x420
> [<ffffffff9cfb2140>] kthread+0xf0/0x120
> [<ffffffff9cee36a4>] ret_from_fork+0x44/0x70
> [<ffffffff9ce7fdda>] ret_from_fork_asm+0x1a/0x30
>
> Fixes: 84909f7decbd ("nvmet: use kzalloc instead of ZERO_PAGE in
> nvme_execute_identify_ns_nvm()")
> Signed-off-by: Sagi Grimberg <sagi at grimberg.me>
> ---
> drivers/nvme/target/admin-cmd.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/nvme/target/admin-cmd.c b/drivers/nvme/target/admin-cmd.c
> index e670dc185a96..acc138bbf8f2 100644
> --- a/drivers/nvme/target/admin-cmd.c
> +++ b/drivers/nvme/target/admin-cmd.c
> @@ -1068,6 +1068,7 @@ static void nvme_execute_identify_ns_nvm(struct nvmet_req *req)
> goto out;
> }
> status = nvmet_copy_to_sgl(req, 0, id, sizeof(*id));
> + kfree(id);
> out:
> nvmet_req_complete(req, status);
> }
Looks good to me.
Reviewed-by: Nilay Shroff <nilay at linux.ibm.com>
More information about the Linux-nvme
mailing list