xemu/tests/qtest
Peter Maydell c94170ae02 tests/qtest/migration-helpers: Fix migrate_get_socket_address() leak
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>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
2024-09-03 16:24:33 -03:00
..
fuzz qtest/fuzz: make range overlap check more readable 2024-07-22 13:56:11 +02:00
libqos tests/qtest/npcm7xx_sdhci: Access the card using its published address 2024-07-05 23:50:12 +02:00
ac97-test.c tests/qtest/ac97-test: add up-/downsampling tests 2023-05-26 09:10:49 +02:00
acpi-utils.c
acpi-utils.h
adm1266-test.c tests/qtest: add tests for ADM1266 2023-11-07 13:08:49 +01:00
adm1272-test.c
ahci-test.c tests/qtest: ahci-test: add test exposing reset issue with pending callback 2023-11-07 13:08:48 +01:00
am53c974-test.c
arm-cpu-features.c tests/arm-cpu-features: Do not assume PMU availability 2024-07-18 13:49:30 +01:00
aspeed_fsi-test.c tests/qtest : Use g_assert_cmphex instead of g_assert_cmpuint 2024-04-25 07:03:04 +02:00
aspeed_gpio-test.c
aspeed_hace-test.c
aspeed_smc-test.c
bcm2835-dma-test.c tests/: spelling fixes 2023-09-08 13:08:52 +03:00
bcm2835-i2c-test.c tests/qtest: Add testcase for BCM2835 BSC 2024-03-05 13:22:55 +00:00
bios-tables-test-allowed-diff.h tests/acpi: Add expected ACPI AML files for RISC-V 2024-07-22 20:15:42 -04:00
bios-tables-test.c tests/qtest/bios-tables-test.c: Enable basic testing for RISC-V 2024-07-22 20:15:42 -04:00
boot-order-test.c tests/qtest: replace qmp_discard_response with qtest_qmp_assert_success 2023-05-16 09:14:18 +02:00
boot-sector.c
boot-sector.h
boot-serial-test.c tests/qtest: Move common define from libqos-spapr.h to new ppc-util.h 2024-06-14 14:00:46 -03:00
cdrom-test.c tests/cdrom-test: Add cdrom test for LoongArch virt machine 2024-02-23 08:13:52 +01:00
cmsdk-apb-dualtimer-test.c tests/qtest : Use g_assert_cmphex instead of g_assert_cmpuint 2024-04-25 07:03:04 +02:00
cmsdk-apb-timer-test.c
cmsdk-apb-watchdog-test.c tests/qtest : Use g_assert_cmphex instead of g_assert_cmpuint 2024-04-25 07:03:04 +02:00
cpu-plug-test.c
cxl-test.c tests/qtest/cxl-test: Clean up temporary directories after testing 2023-06-26 09:01:33 +02:00
dbus-display-test.c tests: skip dbus-display tests that need a console 2024-02-23 08:13:52 +01:00
dbus-vmstate-test.c
device-introspect-test.c tests/qtest: Use qtest_add_data_func_full() 2024-07-02 09:34:14 +02:00
device-plug-test.c target/ppc: Add POWER9 DD2.2 model 2023-05-28 13:25:11 -03:00
display-vga-test.c
dm163-test.c tests/qtest : Add testcase for DM163 2024-04-30 16:05:08 +01:00
drive_del-test.c tests/qtest: s390x: fix operation in a build without any boards or devices 2024-05-10 15:45:15 +02:00
ds1338-test.c tests/: spelling fixes 2023-09-08 13:08:52 +03:00
e1000-test.c
e1000e-test.c tests/qtest/e1000e-test: Fabricate ethernet header 2023-03-10 17:26:47 +08:00
eepro100-test.c
emc141x-test.c
endianness-test.c
erst-test.c tests/qtest : Use g_assert_cmphex instead of g_assert_cmpuint 2024-04-25 07:03:04 +02:00
es1370-test.c tests/qtest: Specify audiodev= and -audiodev 2023-09-22 16:30:08 +02:00
fdc-test.c tests/qtest: replace qmp_discard_response with qtest_qmp_assert_success 2023-05-16 09:14:18 +02:00
fuzz-e1000e-test.c
fuzz-lsi53c895a-test.c hw/scsi/lsi53c895a: Fix reentrancy issues in the LSI controller (CVE-2023-0330) 2023-05-26 09:37:04 +02:00
fuzz-megasas-test.c
fuzz-sb16-test.c
fuzz-sdcard-test.c
fuzz-virtio-scsi-test.c
fuzz-xlnx-dp-test.c
fw_cfg-test.c
hd-geo-test.c tests/qtest/hd-geo-test: fix incorrect pcie-root-port usage and simplify test 2023-07-10 18:59:32 -04:00
hexloader-test.c
i440fx-test.c
i82801b11-test.c
ide-test.c tests/qtest/ide-test: Verify READ NATIVE MAX ADDRESS is not limited 2024-04-30 06:21:47 +02:00
igb-test.c igb: Introduce qtest for igb device 2023-03-10 17:26:47 +08:00
intel-hda-test.c tests/qtest: Specify audiodev= and -audiodev 2023-09-22 16:30:08 +02:00
ioh3420-test.c
ipmi-bt-test.c ipmi-bt-test: force ipv4 2023-10-27 10:13:17 +02:00
ipmi-kcs-test.c
ipoctal232-test.c
isl_pmbus_vr-test.c
ivshmem-test.c tests/qtest : Use g_assert_cmphex instead of g_assert_cmpuint 2024-04-25 07:03:04 +02:00
libqmp.c
libqmp.h
libqtest-single.h
libqtest.c tests/qtest/migration: Remove vmstate-static-checker test 2024-09-03 16:24:33 -03:00
libqtest.h tests/qtest/migration: Remove vmstate-static-checker test 2024-09-03 16:24:33 -03:00
lpc-ich9-test.c
lsm303dlhc-mag-test.c
m48t59-test.c tests/qtest: skip m48t59-test if the machine is absent 2024-05-03 15:47:39 +02:00
machine-none-test.c target/nios2: Remove the deprecated Nios II target 2024-04-24 16:03:38 +02:00
max34451-test.c hw/i2c: pmbus: reset page register for out of range reads 2023-11-07 13:08:49 +01:00
megasas-test.c
meson.build tests/qtest: Add pnv-spi-seeprom qtest 2024-07-26 09:21:06 +10:00
microbit-test.c tests/qtest : Use g_assert_cmphex instead of g_assert_cmpuint 2024-04-25 07:03:04 +02:00
migration-helpers.c tests/qtest/migration-helpers: Fix migrate_get_socket_address() leak 2024-09-03 16:24:33 -03:00
migration-helpers.h tests/migration-tests: migration_event_wait() 2024-06-21 09:48:00 -03:00
migration-test.c tests/qtest/migration-test: Fix leaks in calc_dirtyrate_ready() 2024-09-03 16:24:33 -03:00
modules-test.c
ne2000-test.c
netdev-socket.c qtest: ensure netdev-socket tests have non-overlapping names 2024-01-11 11:39:26 +01:00
npcm7xx_adc-test.c tests/npcm7xx_adc: Clean up global variable shadowing 2023-10-27 09:39:08 +02:00
npcm7xx_emc-test.c tests/qtest/npcm7xx_emc_test: Don't leak cmd_line 2024-03-25 10:40:59 +00:00
npcm7xx_gpio-test.c
npcm7xx_pwm-test.c tests/qtest/npcm7xx_pwm-test: Only do full testing in slow mode 2023-12-20 10:29:23 +01:00
npcm7xx_rng-test.c
npcm7xx_sdhci-test.c tests/qtest/npcm7xx_sdhci: Access the card using its published address 2024-07-05 23:50:12 +02:00
npcm7xx_smbus-test.c
npcm7xx_timer-test.c tests/qtest: Fix npcm7xx_timer-test.c flaky test 2023-10-12 14:11:44 +02:00
npcm7xx_watchdog_timer-test.c tests/qtest/npcm7xx_watchdog_timer: Only test the corner cases by default 2024-01-16 07:24:08 +01:00
npcm_gmac-test.c tests/qtest: Fix GMAC test to run on a machine in upstream QEMU 2024-02-15 11:44:07 +00:00
numa-test.c qtest/x86/numa-test: do not use the obsolete 'pentium' cpu 2024-06-12 10:19:57 +02:00
nvme-test.c misc: Use QEMU header path relative to include/ directory 2024-05-09 00:07:21 +02:00
pca9552-test.c misc/pca955*: Move models under hw/gpio 2024-03-25 15:05:38 +01:00
pci-test.c
pcnet-test.c
pflash-cfi02-test.c tests/qtest/pflash: Clean up local variable shadowing 2023-09-12 12:07:31 +02:00
pnv-host-i2c-test.c misc/pca955*: Move models under hw/gpio 2024-03-25 15:05:38 +01:00
pnv-spi-seeprom-test.c tests/qtest: Add pnv-spi-seeprom qtest 2024-07-26 09:21:06 +10:00
pnv-xscom-test.c ppc/pnv: Test pnv i2c master and connected devices 2024-02-23 23:24:42 +10:00
pnv-xscom.h ppc/pnv: Update Power10's cfam id to use Power10 DD2 2024-07-26 09:21:06 +10:00
ppc-util.h tests/qtest: Move common define from libqos-spapr.h to new ppc-util.h 2024-06-14 14:00:46 -03:00
prom-env-test.c tests/qtest: Move common define from libqos-spapr.h to new ppc-util.h 2024-06-14 14:00:46 -03:00
pvpanic-pci-test.c tests/qtest/pvpanic: add tests for pvshutdown event 2024-07-01 17:16:04 -04:00
pvpanic-test.c tests/qtest/pvpanic: add tests for pvshutdown event 2024-07-01 17:16:04 -04:00
pxe-test.c tests/qtest: Move common define from libqos-spapr.h to new ppc-util.h 2024-06-14 14:00:46 -03:00
q35-test.c
qmp-cmd-test.c qapi: Add HV_BALLOON_STATUS_REPORT event and its QMP query command 2023-11-06 14:08:10 +01:00
qmp-test.c
qom-test.c
qos-test.c tests/qtest: Free paths 2024-07-02 09:34:55 +02:00
qtest_aspeed.c qtest: Add functions for accessing devices on Aspeed I2C controller 2023-04-20 11:25:32 +02:00
qtest_aspeed.h aspeed: Clean up includes 2024-01-30 21:20:20 +03:00
readconfig-test.c tests/qtest/readconfig: Test the docs/config/q35-*.cfg files 2023-07-10 15:34:57 +02:00
rtas-test.c
rtc-test.c
rtl8139-test.c tests/rtl8139: Clean up global variable shadowing 2023-10-27 09:39:08 +02:00
sdhci-test.c
sifive-e-aon-watchdog-test.c tests/qtest: sifive-e-aon-watchdog-test.c: Add QTest of watchdog of sifive_e 2023-07-10 22:29:15 +10:00
spapr-phb-test.c
sse-timer-test.c tests/qtest : Use g_assert_cmphex instead of g_assert_cmpuint 2024-04-25 07:03:04 +02:00
stm32l4x5_exti-test.c tests/qtest: Ensure STM32L4x5 EXTI state is correct at the end of QTests 2024-07-01 15:40:54 +01:00
stm32l4x5_gpio-test.c hw/arm : Pass STM32L4x5 SYSCFG gpios to STM32L4x5 SoC 2024-04-30 16:05:08 +01:00
stm32l4x5_rcc-test.c tests/qtest/stm32l4x5_rcc-test.c: Add tests for the STM32L4x5_RCC 2024-03-05 13:22:56 +00:00
stm32l4x5_syscfg-test.c tests/qtest: Ensure STM32L4x5 EXTI state is correct at the end of QTests 2024-07-01 15:40:54 +01:00
stm32l4x5_usart-test.c tests/qtest: Add tests for the STM32L4x5 USART 2024-04-25 10:21:59 +01:00
tco-test.c hw: Move ich9.h to southbridge/ 2023-02-27 22:29:01 +01:00
test-arm-mptimer.c
test-filter-mirror.c tests/qtest: check the return value 2023-12-04 15:12:57 +01:00
test-filter-redirector.c tests/qtest: check the return value 2023-12-04 15:12:57 +01:00
test-hmp.c hmp: Remove deprecated 'singlestep' command 2024-01-19 11:38:32 +01:00
test-netfilter.c
test-x86-cpuid-compat.c tests/qtest/x86: check for availability of older cpu models before running tests 2024-06-12 10:21:44 +02:00
tmp105-test.c
tpm-crb-swtpm-test.c qtest: Move tpm_util_tis_transmit() into tpm-tis-utils.c and rename it 2023-04-20 11:25:32 +02:00
tpm-crb-test.c qtest: Move tpm_util_tis_transmit() into tpm-tis-utils.c and rename it 2023-04-20 11:25:32 +02:00
tpm-emu.c tests/: spelling fixes 2023-09-08 13:08:52 +03:00
tpm-emu.h
tpm-tests.c tests/: spelling fixes 2023-09-08 13:08:52 +03:00
tpm-tests.h tests/: spelling fixes 2023-09-08 13:08:52 +03:00
tpm-tis-device-swtpm-test.c qtest: Move tpm_util_tis_transmit() into tpm-tis-utils.c and rename it 2023-04-20 11:25:32 +02:00
tpm-tis-device-test.c
tpm-tis-i2c-test.c tests/: spelling fixes 2023-09-08 13:08:52 +03:00
tpm-tis-swtpm-test.c qtest: Move tpm_util_tis_transmit() into tpm-tis-utils.c and rename it 2023-04-20 11:25:32 +02:00
tpm-tis-test.c
tpm-tis-util.c tests/: spelling fixes 2023-09-08 13:08:52 +03:00
tpm-tis-util.h qtest: Move tpm_util_tis_transmit() into tpm-tis-utils.c and rename it 2023-04-20 11:25:32 +02:00
tpm-util.c qtest: Move tpm_util_tis_transmit() into tpm-tis-utils.c and rename it 2023-04-20 11:25:32 +02:00
tpm-util.h qtest: Move tpm_util_tis_transmit() into tpm-tis-utils.c and rename it 2023-04-20 11:25:32 +02:00
tulip-test.c
ufs-test.c misc: Use QEMU header path relative to include/ directory 2024-05-09 00:07:21 +02:00
usb-hcd-ehci-test.c tests/qtest/usb-hcd-ehci-test: Check for EHCI and UHCI HCDs before using them 2023-05-26 09:10:49 +02:00
usb-hcd-ohci-test.c
usb-hcd-uhci-test.c tests/qtest/usb-hcd: Remove the empty "init" tests 2023-09-08 13:08:52 +03:00
usb-hcd-xhci-test.c tests/qtest/usb-hcd: Remove the empty "init" tests 2023-09-08 13:08:52 +03:00
vhost-user-blk-test.c tests/qtest/vhost-user-blk-test: use memory-backend-shm 2024-07-03 18:14:06 -04:00
vhost-user-test.c virtio: features,fixes 2024-07-03 20:54:17 -07:00
virtio-9p-test.c qtest/virtio-9p-test.c: remove g_test_slow() gate 2024-03-28 09:54:47 +01:00
virtio-blk-test.c tests/qtest: replace qmp_discard_response with qtest_qmp_assert_success 2023-05-16 09:14:18 +02:00
virtio-ccw-test.c tests/qtest/virtio-ccw: Fix device presence checking 2024-01-11 11:39:26 +01:00
virtio-iommu-test.c hw/i386/q35: Set virtio-iommu aw-bits default value to 39 2024-03-12 17:59:03 -04:00
virtio-net-failover.c qtest: use correct boolean type for failover property 2024-01-11 11:39:26 +01:00
virtio-net-test.c tests/qtest: check the return value 2023-12-04 15:12:57 +01:00
virtio-rng-test.c
virtio-scsi-test.c tests/virtio-scsi: Clean up global variable shadowing 2023-10-27 09:39:08 +02:00
virtio-serial-test.c
virtio-test.c
vmgenid-test.c tests/: spelling fixes 2023-09-08 13:08:52 +03:00
vmxnet3-test.c
vnc-display-test.c qtest: enable vnc-display test on win32 2023-03-13 15:41:32 +04:00
wdt_ib700-test.c
xlnx-can-test.c
xlnx-canfd-test.c tests/qtest: xlnx-canfd-test: Fix code coverity issues 2023-07-06 13:26:43 +01:00
xlnx-versal-trng-test.c tests/qtest/xlnx-versal-trng-test.c: Drop use of variable length array 2024-02-02 13:51:58 +00:00