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 >
