qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	qemu-stable@nongnu.org,
	"Daniel P . Berrangé" <berrange@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: [PULL 20/20] crypto/tlscredspsk: Free username on finalize
Date: Tue, 20 Aug 2024 00:51:16 +0200	[thread overview]
Message-ID: <20240819225116.17928-21-philmd@linaro.org> (raw)
In-Reply-To: <20240819225116.17928-1-philmd@linaro.org>

From: Peter Maydell <peter.maydell@linaro.org>

When the creds->username property is set we allocate memory
for it in qcrypto_tls_creds_psk_prop_set_username(), but
we never free this when the QCryptoTLSCredsPSK is destroyed.
Free the memory in finalize.

This fixes a LeakSanitizer complaint in migration-test:

$ (cd build/asan; ASAN_OPTIONS="fast_unwind_on_malloc=0" QTEST_QEMU_BINARY=./qemu-system-x86_64 ./tests/qtest/migration-test --tap -k -p /x86_64/migration/precopy/unix/tls/psk)

=================================================================
==3867512==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 5 byte(s) in 1 object(s) allocated from:
    #0 0x5624e5c99dee in malloc (/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/qemu-system-x86_64+0x218edee) (BuildId: a9e623fa1009a9435c0142c037cd7b8c1ad04ce3)
    #1 0x7fb199ae9738 in g_malloc debian/build/deb/../../../glib/gmem.c:128:13
    #2 0x7fb199afe583 in g_strdup debian/build/deb/../../../glib/gstrfuncs.c:361:17
    #3 0x5624e82ea919 in qcrypto_tls_creds_psk_prop_set_username /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../crypto/tlscredspsk.c:255:23
    #4 0x5624e812c6b5 in property_set_str /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../qom/object.c:2277:5
    #5 0x5624e8125ce5 in object_property_set /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../qom/object.c:1463:5
    #6 0x5624e8136e7c in object_set_properties_from_qdict /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../qom/object_interfaces.c:55:14
    #7 0x5624e81372d2 in user_creatable_add_type /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../qom/object_interfaces.c:112:5
    #8 0x5624e8137964 in user_creatable_add_qapi /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../qom/object_interfaces.c:157:11
    #9 0x5624e891ba3c in qmp_object_add /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../qom/qom-qmp-cmds.c:227:5
    #10 0x5624e8af9118 in qmp_marshal_object_add /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/qapi/qapi-commands-qom.c:337:5
    #11 0x5624e8bd1d49 in do_qmp_dispatch_bh /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../qapi/qmp-dispatch.c:128:5
    #12 0x5624e8cb2531 in aio_bh_call /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../util/async.c:171:5
    #13 0x5624e8cb340c in aio_bh_poll /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../util/async.c:218:13
    #14 0x5624e8c0be98 in aio_dispatch /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../util/aio-posix.c:423:5
    #15 0x5624e8cba3ce in aio_ctx_dispatch /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../util/async.c:360:5
    #16 0x7fb199ae0d3a in g_main_dispatch debian/build/deb/../../../glib/gmain.c:3419:28
    #17 0x7fb199ae0d3a in g_main_context_dispatch debian/build/deb/../../../glib/gmain.c:4137:7
    #18 0x5624e8cbe1d9 in glib_pollfds_poll /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../util/main-loop.c:287:9
    #19 0x5624e8cbcb13 in os_host_main_loop_wait /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../util/main-loop.c:310:5
    #20 0x5624e8cbc6dc in main_loop_wait /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../util/main-loop.c:589:11
    #21 0x5624e6f3f917 in qemu_main_loop /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../system/runstate.c:801:9
    #22 0x5624e893379c in qemu_default_main /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../system/main.c:37:14
    #23 0x5624e89337e7 in main /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../system/main.c:48:12
    #24 0x7fb197972d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #25 0x7fb197972e3f in __libc_start_main csu/../csu/libc-start.c:392:3
    #26 0x5624e5c16fa4 in _start (/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/qemu-system-x86_64+0x210bfa4) (BuildId: a9e623fa1009a9435c0142c037cd7b8c1ad04ce3)

SUMMARY: AddressSanitizer: 5 byte(s) leaked in 1 allocation(s).

Cc: qemu-stable@nongnu.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-ID: <20240819145021.38524-1-peter.maydell@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 crypto/tlscredspsk.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/crypto/tlscredspsk.c b/crypto/tlscredspsk.c
index 546cad1c5a..0d6b71a37c 100644
--- a/crypto/tlscredspsk.c
+++ b/crypto/tlscredspsk.c
@@ -243,6 +243,7 @@ qcrypto_tls_creds_psk_finalize(Object *obj)
     QCryptoTLSCredsPSK *creds = QCRYPTO_TLS_CREDS_PSK(obj);
 
     qcrypto_tls_creds_psk_unload(creds);
+    g_free(creds->username);
 }
 
 static void
-- 
2.45.2



  parent reply	other threads:[~2024-08-19 22:55 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-19 22:50 [PULL 00/20] Misc fixes for 2024-08-20 Philippe Mathieu-Daudé
2024-08-19 22:50 ` [PULL 01/20] hw/mips/loongson3_virt: Store core_iocsr into LoongsonMachineState Philippe Mathieu-Daudé
2024-08-19 22:50 ` [PULL 02/20] hw/mips/loongson3_virt: Fix condition of IPI IOCSR connection Philippe Mathieu-Daudé
2024-08-19 22:50 ` [PULL 03/20] qemu-options.hx: correct formatting -smbios type=4 Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 04/20] target/mips: Pass page table entry size as MemOp to get_pte() Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 05/20] target/mips: Use correct MMU index in get_pte() Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 06/20] target/mips: Load PTE as DATA Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 07/20] hw/dma/xilinx_axidma: Use semicolon at end of statement, not comma Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 08/20] hw/remote/message.c: Don't directly invoke DeviceClass:reset Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 09/20] linux-user/mips: Do not try to use removed R5900 CPU Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 10/20] linux-user/mips: Select Octeon68XX CPU for Octeon binaries Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 11/20] linux-user/mips: Select MIPS64R2-generic for Rel2 binaries Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 12/20] linux-user/mips: Select Loongson CPU for Loongson binaries Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 13/20] tests/avocado: exec_command should not consume console output Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 14/20] tests/avocado: Mark ppc_hv_tests.py as non-flaky after fixed console interaction Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 15/20] contrib/plugins/execlog: Fix shadowed declaration warning Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 16/20] target/sparc: Restrict STQF to sparcv9 Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 17/20] hw/ppc/Kconfig: Add missing SERIAL_ISA dependency to POWERNV machine Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 18/20] hw/i386/pc: Unify vmport=auto handling Philippe Mathieu-Daudé
2024-08-20 19:48   ` Philippe Mathieu-Daudé
2024-08-20 20:32     ` Kamil Szczęk
2024-08-20 22:45       ` Richard Henderson
2024-08-20 22:55         ` Kamil Szczęk
2024-08-19 22:51 ` [PULL 19/20] hw/i386/pc: Ensure vmport prerequisites are fulfilled Philippe Mathieu-Daudé
2024-08-19 22:51 ` Philippe Mathieu-Daudé [this message]
2024-08-20  6:50 ` [PULL 00/20] Misc fixes for 2024-08-20 Richard Henderson

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=20240819225116.17928-21-philmd@linaro.org \
    --to=philmd@linaro.org \
    --cc=berrange@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-stable@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).