[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH for-9.2 4/9] tests/qtest/migration-helpers: Fix migrate_get_s
|
From: |
Fabiano Rosas |
|
Subject: |
Re: [PATCH for-9.2 4/9] tests/qtest/migration-helpers: Fix migrate_get_socket_address() leak |
|
Date: |
Thu, 22 Aug 2024 09:24:33 -0300 |
Peter Maydell <peter.maydell@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.maydell@linaro.org>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
- [PATCH for-9.2 0/9] tests/qtest/migration-test: Fix various leaks, Peter Maydell, 2024/08/20
- [PATCH for-9.2 1/9] tests/qtest/migration-test: Fix bootfile cleanup handling, Peter Maydell, 2024/08/20
- [PATCH for-9.2 4/9] tests/qtest/migration-helpers: Fix migrate_get_socket_address() leak, Peter Maydell, 2024/08/20
- Re: [PATCH for-9.2 4/9] tests/qtest/migration-helpers: Fix migrate_get_socket_address() leak,
Fabiano Rosas <=
- [PATCH for-9.2 8/9] tests/qtest/migration-test: Don't strdup in get_dirty_rate(), Peter Maydell, 2024/08/20
- [PATCH for-9.2 9/9] tests/qtest/migration-test: Don't leak QTestState in test_multifd_tcp_cancel(), Peter Maydell, 2024/08/20
- [PATCH for-9.2 3/9] tests/qtest/migration-test: Fix leaks in calc_dirtyrate_ready(), Peter Maydell, 2024/08/20
- [PATCH for-9.2 2/9] tests/qtest/migration-test: Don't leak resp in multifd_mapped_ram_fdset_end(), Peter Maydell, 2024/08/20
- [PATCH for-9.2 6/9] tests/unit/crypto-tls-x509-helpers: deinit privkey in test_tls_cleanup, Peter Maydell, 2024/08/20