All of lore.kernel.org
 help / color / mirror / Atom feed
From: Klaus Jensen <its@irrelevant.dk>
To: Zheyu Ma <zheyuma97@gmail.com>
Cc: Keith Busch <kbusch@kernel.org>,
	Jesper Devantier <foss@defmacro.it>,
	qemu-block@nongnu.org, qemu-devel@nongnu.org
Subject: Re: [PATCH] hw/nvme: Fix memory leak in nvme_dsm
Date: Wed, 10 Jul 2024 09:37:30 +0200	[thread overview]
Message-ID: <Zo46OsRWrnDiIPTC@cormorant.local> (raw)
In-Reply-To: <20240702231303.3077584-1-zheyuma97@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1522 bytes --]

On Jul  3 01:13, Zheyu Ma wrote:
> The allocated memory to hold LBA ranges leaks in the nvme_dsm function. This
> happens because the allocated memory for iocb->range is not freed in all
> error handling paths.
> 
> Fix this by adding a free to ensure that the allocated memory is properly freed.
> 
> ASAN log:
> ==3075137==ERROR: LeakSanitizer: detected memory leaks
> 
> Direct leak of 480 byte(s) in 6 object(s) allocated from:
>     #0 0x55f1f8a0eddd in malloc llvm/compiler-rt/lib/asan/asan_malloc_linux.cpp:129:3
>     #1 0x7f531e0f6738 in g_malloc (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5e738)
>     #2 0x55f1faf1f091 in blk_aio_get block/block-backend.c:2583:12
>     #3 0x55f1f945c74b in nvme_dsm hw/nvme/ctrl.c:2609:30
>     #4 0x55f1f945831b in nvme_io_cmd hw/nvme/ctrl.c:4470:16
>     #5 0x55f1f94561b7 in nvme_process_sq hw/nvme/ctrl.c:7039:29
> 
> Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
> ---
>  hw/nvme/ctrl.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c
> index 127c3d2383..cf610eab21 100644
> --- a/hw/nvme/ctrl.c
> +++ b/hw/nvme/ctrl.c
> @@ -2592,6 +2592,7 @@ next:
>  done:
>      iocb->aiocb = NULL;
>      iocb->common.cb(iocb->common.opaque, iocb->ret);
> +    g_free(iocb->range);
>      qemu_aio_unref(iocb);
>  }
>  
> -- 
> 2.34.1
> 

Thanks! LGTM

Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Fixes: d7d1474fd85d ("hw/nvme: reimplement dsm to allow cancellation")
Cc: qemu-stable@nongnu.org

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

      parent reply	other threads:[~2024-07-10  7:38 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-02 23:13 [PATCH] hw/nvme: Fix memory leak in nvme_dsm Zheyu Ma
2024-07-03  0:28 ` Xingtao Yao (Fujitsu) via
2024-07-10  7:37 ` Klaus Jensen [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Zo46OsRWrnDiIPTC@cormorant.local \
    --to=its@irrelevant.dk \
    --cc=foss@defmacro.it \
    --cc=kbusch@kernel.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=zheyuma97@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.