qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, qemu-devel@nongnu.org
Subject: [PULL 04/25] block: Fix leak in send_qmp_error_event
Date: Mon, 10 Feb 2025 17:10:13 +0100	[thread overview]
Message-ID: <20250210161034.76494-5-kwolf@redhat.com> (raw)
In-Reply-To: <20250210161034.76494-1-kwolf@redhat.com>

From: Fabiano Rosas <farosas@suse.de>

ASAN detected a leak when running the ahci-test
/ahci/io/dma/lba28/retry:

Direct leak of 35 byte(s) in 1 object(s) allocated from:
    #0 in malloc
    #1 in __vasprintf_internal
    #2 in vasprintf
    #3 in g_vasprintf
    #4 in g_strdup_vprintf
    #5 in g_strdup_printf
    #6 in object_get_canonical_path ../qom/object.c:2096:19
    #7 in blk_get_attached_dev_id_or_path ../block/block-backend.c:1033:12
    #8 in blk_get_attached_dev_path ../block/block-backend.c:1047:12
    #9 in send_qmp_error_event ../block/block-backend.c:2140:36
    #10 in blk_error_action ../block/block-backend.c:2172:9
    #11 in ide_handle_rw_error ../hw/ide/core.c:875:5
    #12 in ide_dma_cb ../hw/ide/core.c:894:13
    #13 in dma_complete ../system/dma-helpers.c:107:9
    #14 in dma_blk_cb ../system/dma-helpers.c:129:9
    #15 in blk_aio_complete ../block/block-backend.c:1552:9
    #16 in blk_aio_write_entry ../block/block-backend.c:1619:5
    #17 in coroutine_trampoline ../util/coroutine-ucontext.c:175:9

Plug the leak by freeing the device path string.

Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20241111145214.8261-1-farosas@suse.de>
[PMD: Use g_autofree]
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20241111170333.43833-3-philmd@linaro.org>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/block-backend.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/block/block-backend.c b/block/block-backend.c
index 789fc6d4ea..b610582644 100644
--- a/block/block-backend.c
+++ b/block/block-backend.c
@@ -2138,10 +2138,10 @@ static void send_qmp_error_event(BlockBackend *blk,
 {
     IoOperationType optype;
     BlockDriverState *bs = blk_bs(blk);
+    g_autofree char *path = blk_get_attached_dev_path(blk);
 
     optype = is_read ? IO_OPERATION_TYPE_READ : IO_OPERATION_TYPE_WRITE;
-    qapi_event_send_block_io_error(blk_name(blk),
-                                   blk_get_attached_dev_path(blk),
+    qapi_event_send_block_io_error(blk_name(blk), path,
                                    bs ? bdrv_get_node_name(bs) : NULL, optype,
                                    action, blk_iostatus_is_enabled(blk),
                                    error == ENOSPC, strerror(error));
-- 
2.48.1



  parent reply	other threads:[~2025-02-10 16:16 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-10 16:10 [PULL 00/25] Block layer patches Kevin Wolf
2025-02-10 16:10 ` [PULL 01/25] vpc: Split off vpc_ignore_current_size() helper Kevin Wolf
2025-02-10 16:10 ` [PULL 02/25] vpc: Read images exported from Azure correctly Kevin Wolf
2025-02-10 16:10 ` [PULL 03/25] block: Improve blk_get_attached_dev_id() docstring Kevin Wolf
2025-02-10 16:10 ` Kevin Wolf [this message]
2025-02-10 16:10 ` [PULL 05/25] scripts/qemu-gdb: Always do full stack dump for python errors Kevin Wolf
2025-02-10 16:10 ` [PULL 06/25] scripts/qemu-gdb: Simplify fs_base fetching for coroutines Kevin Wolf
2025-02-10 16:10 ` [PULL 07/25] scripts/qemu-gdb: Support coroutine dumps in coredumps Kevin Wolf
2025-02-10 16:10 ` [PULL 08/25] block-backend: Fix argument order when calling 'qapi_event_send_block_io_error()' Kevin Wolf
2025-02-10 16:10 ` [PULL 09/25] block: Add 'active' field to BlockDeviceInfo Kevin Wolf
2025-02-10 16:10 ` [PULL 10/25] block: Allow inactivating already inactive nodes Kevin Wolf
2025-02-10 16:10 ` [PULL 11/25] block: Inactivate external snapshot overlays when necessary Kevin Wolf
2025-02-10 16:10 ` [PULL 12/25] migration/block-active: Remove global active flag Kevin Wolf
2025-02-10 16:10 ` [PULL 13/25] block: Don't attach inactive child to active node Kevin Wolf
2025-02-10 16:10 ` [PULL 14/25] block: Fix crash on block_resize on inactive node Kevin Wolf
2025-02-10 16:10 ` [PULL 15/25] block: Add option to create inactive nodes Kevin Wolf
2025-02-10 16:10 ` [PULL 16/25] block: Add blockdev-set-active QMP command Kevin Wolf
2025-02-10 16:10 ` [PULL 17/25] block: Support inactive nodes in blk_insert_bs() Kevin Wolf
2025-02-10 16:10 ` [PULL 18/25] block/export: Don't ignore image activation error in blk_exp_add() Kevin Wolf
2025-02-10 16:10 ` [PULL 19/25] block: Drain nodes before inactivating them Kevin Wolf
2025-02-10 16:10 ` [PULL 20/25] block/export: Add option to allow export of inactive nodes Kevin Wolf
2025-02-10 16:10 ` [PULL 21/25] nbd/server: Support " Kevin Wolf
2025-02-10 16:10 ` [PULL 22/25] iotests: Add filter_qtest() Kevin Wolf
2025-02-10 16:10 ` [PULL 23/25] iotests: Add qsd-migrate case Kevin Wolf
2025-02-10 16:10 ` [PULL 24/25] iotests: Add (NBD-based) tests for inactive nodes Kevin Wolf
2025-02-10 16:10 ` [PULL 25/25] block: remove unused BLOCK_OP_TYPE_DATAPLANE Kevin Wolf
2025-02-11  2:37 ` [PULL 00/25] Block layer patches Stefan Hajnoczi

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=20250210161034.76494-5-kwolf@redhat.com \
    --to=kwolf@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).