Hi Peter

On Sat, Mar 7, 2026 at 5:08 PM Peter Maydell <[email protected]> wrote:
>
> Hi; the dbus-display-test when built with the clang address sanitizer
> produces a lot of memory leaks. Repro:
>

Please review
https://patchew.org/QEMU/[email protected]/

It's in my UI queue already

> 1) configure with:
> '--cc=clang' '--cxx=clang++' '--enable-ubsan' '--enable-asan'
> '--target-list=x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user'
> '--disable-docs' '--enable-debug'
>
> and build.
>
> 2) run the test with:
>
> (cd build/x86-tgt-san-dbg/ && QTEST_QEMU_BINARY=./qemu-system-x86_64
> ./tests/qtest/dbus-display-test ) 2>&1|less
>
> The 'console' subtest will cause it to output a lot of leak reports, e.g.
>
> Direct leak of 208 byte(s) in 2 object(s) allocated from:
>     #0 0x64e038cdfadd in calloc
> (/home/pm215/qemu/build/x86-tgt-san-dbg/tests/qtest/dbus-display-test+0x258add)
> (BuildId: aa998e9bf2752fab128fa39c22c94bbb5b77ce2d)
>     #1 0x7ef13b191771 in g_malloc0
> (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x63771) (BuildId:
> 116e142b9b52c8a4dfd403e759e71ab8f95d8bb3)
>     #2 0x7ef13b2b7f65 in g_type_create_instance
> (/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x40f65) (BuildId:
> 91bcc5d52326f5490fa62acc824cb87c700d0f8a)
>     #3 0x7ef13b29da63
> (/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x26a63) (BuildId:
> 91bcc5d52326f5490fa62acc824cb87c700d0f8a)
>     #4 0x7ef13b29f015 in g_object_new_with_properties
> (/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x28015) (BuildId:
> 91bcc5d52326f5490fa62acc824cb87c700d0f8a)
>     #5 0x7ef13b29ff70 in g_object_new
> (/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x28f70) (BuildId:
> 91bcc5d52326f5490fa62acc824cb87c700d0f8a)
>     #6 0x7ef13b428809
> (/lib/x86_64-linux-gnu/libgio-2.0.so.0+0x14e809) (BuildId:
> ebdb30973c66c71f7f9fc82981b95f418ea1dfb1)
>     #7 0x7ef13b3e7d96
> (/lib/x86_64-linux-gnu/libgio-2.0.so.0+0x10dd96) (BuildId:
> ebdb30973c66c71f7f9fc82981b95f418ea1dfb1)
>     #8 0x7ef13b3e83c2
> (/lib/x86_64-linux-gnu/libgio-2.0.so.0+0x10e3c2) (BuildId:
> ebdb30973c66c71f7f9fc82981b95f418ea1dfb1)
>     #9 0x7ef13b3fcad7
> (/lib/x86_64-linux-gnu/libgio-2.0.so.0+0x122ad7) (BuildId:
> ebdb30973c66c71f7f9fc82981b95f418ea1dfb1)
>     #10 0x7ef13b38b7ba
> (/lib/x86_64-linux-gnu/libgio-2.0.so.0+0xb17ba) (BuildId:
> ebdb30973c66c71f7f9fc82981b95f418ea1dfb1)
>     #11 0x7ef13b38b7f4
> (/lib/x86_64-linux-gnu/libgio-2.0.so.0+0xb17f4) (BuildId:
> ebdb30973c66c71f7f9fc82981b95f418ea1dfb1)
>     #12 0x7ef13b18b45d
> (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5d45d) (BuildId:
> 116e142b9b52c8a4dfd403e759e71ab8f95d8bb3)
>     #13 0x7ef13b1ea976
> (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0xbc976) (BuildId:
> 116e142b9b52c8a4dfd403e759e71ab8f95d8bb3)
>     #14 0x7ef13b18bf46 in g_main_loop_run
> (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5df46) (BuildId:
> 116e142b9b52c8a4dfd403e759e71ab8f95d8bb3)
>     #15 0x7ef13b3f4581
> (/lib/x86_64-linux-gnu/libgio-2.0.so.0+0x11a581) (BuildId:
> ebdb30973c66c71f7f9fc82981b95f418ea1dfb1)
>     #16 0x7ef13b1b9e61
> (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x8be61) (BuildId:
> 116e142b9b52c8a4dfd403e759e71ab8f95d8bb3)
>     #17 0x64e038cdd3dc in asan_thread_start(void*) asan_interceptors.cpp.o
>
> Indirect leak of 1228800 byte(s) in 1 object(s) allocated from:
>     #0 0x64e038cdf8f3 in malloc
> (/home/pm215/qemu/build/x86-tgt-san-dbg/tests/qtest/dbus-display-test+0x2588f3)
> (BuildId: aa998e9bf2752fab128fa39c22c94bbb5b77ce2d)
>     #1 0x7ef13b190ac9 in g_malloc
> (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x62ac9) (BuildId:
> 116e142b9b52c8a4dfd403e759e71ab8f95d8bb3)
>     #2 0x7ef13b1a6532 in g_memdup2
> (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x78532) (BuildId:
> 116e142b9b52c8a4dfd403e759e71ab8f95d8bb3)
>     #3 0x7ef13b1d2d81 in g_variant_new_fixed_array
> (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0xa4d81) (BuildId:
> 116e142b9b52c8a4dfd403e759e71ab8f95d8bb3)
>     #4 0x7ef13b425412
> (/lib/x86_64-linux-gnu/libgio-2.0.so.0+0x14b412) (BuildId:
> ebdb30973c66c71f7f9fc82981b95f418ea1dfb1)
>     #5 0x7ef13b42520c
> (/lib/x86_64-linux-gnu/libgio-2.0.so.0+0x14b20c) (BuildId:
> ebdb30973c66c71f7f9fc82981b95f418ea1dfb1)
>     #6 0x7ef13b3f0190 in g_dbus_message_new_from_blob
> (/lib/x86_64-linux-gnu/libgio-2.0.so.0+0x116190) (BuildId:
> ebdb30973c66c71f7f9fc82981b95f418ea1dfb1)
>     #7 0x7ef13b3fc6a2
> (/lib/x86_64-linux-gnu/libgio-2.0.so.0+0x1226a2) (BuildId:
> ebdb30973c66c71f7f9fc82981b95f418ea1dfb1)
>     #8 0x7ef13b38b7ba  (/lib/x86_64-linux-gnu/libgio-2.0.so.0+0xb17ba)
> (BuildId: ebdb30973c66c71f7f9fc82981b95f418ea1dfb1)
>     #9 0x7ef13b38b7f4  (/lib/x86_64-linux-gnu/libgio-2.0.so.0+0xb17f4)
> (BuildId: ebdb30973c66c71f7f9fc82981b95f418ea1dfb1)
>     #10 0x7ef13b18b45d
> (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5d45d) (BuildId:
> 116e142b9b52c8a4dfd403e759e71ab8f95d8bb3)
>     #11 0x7ef13b1ea976
> (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0xbc976) (BuildId:
> 116e142b9b52c8a4dfd403e759e71ab8f95d8bb3)
>     #12 0x7ef13b18bf46 in g_main_loop_run
> (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5df46) (BuildId:
> 116e142b9b52c8a4dfd403e759e71ab8f95d8bb3)
>     #13 0x7ef13b3f4581
> (/lib/x86_64-linux-gnu/libgio-2.0.so.0+0x11a581) (BuildId:
> ebdb30973c66c71f7f9fc82981b95f418ea1dfb1)
>     #14 0x7ef13b1b9e61
> (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x8be61) (BuildId:
> 116e142b9b52c8a4dfd403e759e71ab8f95d8bb3)
>     #15 0x64e038cdd3dc in asan_thread_start(void*) asan_interceptors.cpp.o
>
> and many others, for a total of:
>
> SUMMARY: AddressSanitizer: 1232414 byte(s) leaked in 86 allocation(s).
>
> Nothing in the backtraces is in the test program itself -- it all
> goes straight from libglib to libgio to libglib again. So I'm
> not sure exactly what's going on here, but presumably we're
> failing to dereference something we ought to.
>
> Could you have a look, please?
>
> thanks
> -- PMM
>


Reply via email to