Peter Maydell <peter.mayd...@linaro.org> writes:

> In migrate_get_socket_address() we leak the SocketAddressList:
>  (cd build/asan && \
>   
> ASAN_OPTIONS="fast_unwind_on_malloc=0:strip_path_prefix=/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/../../"
>   QTEST_QEMU_BINARY=./qemu-system-x86_64 \
>   ./tests/qtest/migration-test --tap -k -p 
> /x86_64/migration/multifd/tcp/tls/psk/match )
>
> [...]
> Direct leak of 16 byte(s) in 1 object(s) allocated from:
>     #0 0x563d7f22f318 in __interceptor_calloc 
> (/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/tests/qtest/migration-test+0x22f318)
>  (BuildId: 2ad6282fb5d076c863ab87f41a345d46dc965ded)
>     #1 0x7f9de3b39c50 in g_malloc0 
> debian/build/deb/../../../glib/gmem.c:161:13
>     #2 0x563d7f3a119c in qobject_input_start_list 
> qapi/qobject-input-visitor.c:336:17
>     #3 0x563d7f390fbf in visit_start_list qapi/qapi-visit-core.c:80:10
>     #4 0x563d7f3882ef in visit_type_SocketAddressList 
> /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/qapi/qapi-visit-sockets.c:519:10
>     #5 0x563d7f3658c9 in migrate_get_socket_address 
> tests/qtest/migration-helpers.c:97:5
>     #6 0x563d7f362e24 in migrate_get_connect_uri 
> tests/qtest/migration-helpers.c:111:13
>     #7 0x563d7f362bb2 in migrate_qmp tests/qtest/migration-helpers.c:222:23
>     #8 0x563d7f3533cd in test_precopy_common 
> tests/qtest/migration-test.c:1817:5
>     #9 0x563d7f34dc1c in test_multifd_tcp_tls_psk_match 
> tests/qtest/migration-test.c:3185:5
>     #10 0x563d7f365337 in migration_test_wrapper 
> tests/qtest/migration-helpers.c:458:5
>
> The code fishes out the SocketAddress from the list to return it, and the
> callers are freeing that, but nothing frees the list.
>
> Since this function is called in only two places, the simple fix is to
> make it return the SocketAddressList rather than just a SocketAddress,
> and then the callers can easily access the SocketAddress, and free
> the whole SocketAddressList when they're done.
>
> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>

Reviewed-by: Fabiano Rosas <faro...@suse.de>

Reply via email to