9b50fd0290
When the given uuid is already present in the hash table, virtio_add_resource() does not add the passed VirtioSharedObject. In this case, free it in the callers to avoid leaking memory. This fixed the following `make check` error, when built with --enable-sanitizers: 4/166 qemu:unit / test-virtio-dmabuf ERROR 1.51s exit status 1 ==7716==ERROR: LeakSanitizer: detected memory leaks Direct leak of 320 byte(s) in 20 object(s) allocated from: #0 0x7f6fc16e3808 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:144 #1 0x7f6fc1503e98 in g_malloc (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x57e98) #2 0x564d63cafb6b in test_add_invalid_resource ../tests/unit/test-virtio-dmabuf.c:100 #3 0x7f6fc152659d (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x7a59d) SUMMARY: AddressSanitizer: 320 byte(s) leaked in 20 allocation(s). The changes at virtio_add_resource() itself are not strictly necessary for the memleak fix, but they make it more obvious that, on an error return, the passed object is not added to the hash. Signed-off-by: Matheus Tavares Bernardino <quic_mathbern@quicinc.com> Message-Id: <c61c13f9a0c67dec473bdbfc8789c29ef26c900b.1696624734.git.quic_mathbern@quicinc.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Albert Esteve <aesteve@redhat.com> Signed-off-by: Matheus Tavares Bernardino <<a href="mailto:quic_mathbern@quicinc.com" target="_blank">quic_mathbern@quicinc.com</a>><br> |
||
---|---|---|
.. | ||
acpi-vga-stub.c | ||
acpi-vga.c | ||
artist.c | ||
ati_2d.c | ||
ati_dbg.c | ||
ati_int.h | ||
ati_regs.h | ||
ati.c | ||
bcm2835_fb.c | ||
blizzard.c | ||
bochs-display.c | ||
cg3.c | ||
cirrus_vga_internal.h | ||
cirrus_vga_isa.c | ||
cirrus_vga_rop2.h | ||
cirrus_vga_rop.h | ||
cirrus_vga.c | ||
dpcd.c | ||
edid-generate.c | ||
edid-region.c | ||
exynos4210_fimd.c | ||
framebuffer.c | ||
framebuffer.h | ||
g364fb.c | ||
i2c-ddc.c | ||
jazz_led.c | ||
Kconfig | ||
macfb.c | ||
meson.build | ||
next-fb.c | ||
omap_dss.c | ||
omap_lcdc.c | ||
pl110_template.h | ||
pl110.c | ||
pxa2xx_lcd.c | ||
qxl-logger.c | ||
qxl-render.c | ||
qxl.c | ||
qxl.h | ||
ramfb-standalone.c | ||
ramfb.c | ||
sii9022.c | ||
sm501.c | ||
ssd0303.c | ||
ssd0323.c | ||
tc6393xb.c | ||
tcx.c | ||
trace-events | ||
trace.h | ||
vga_int.h | ||
vga_regs.h | ||
vga-access.h | ||
vga-helpers.h | ||
vga-isa.c | ||
vga-mmio.c | ||
vga-pci.c | ||
vga.c | ||
vhost-user-gpu-pci.c | ||
vhost-user-gpu.c | ||
vhost-user-vga.c | ||
virtio-dmabuf.c | ||
virtio-gpu-base.c | ||
virtio-gpu-gl.c | ||
virtio-gpu-pci-gl.c | ||
virtio-gpu-pci-rutabaga.c | ||
virtio-gpu-pci.c | ||
virtio-gpu-rutabaga.c | ||
virtio-gpu-udmabuf-stubs.c | ||
virtio-gpu-udmabuf.c | ||
virtio-gpu-virgl.c | ||
virtio-gpu.c | ||
virtio-vga-gl.c | ||
virtio-vga-rutabaga.c | ||
virtio-vga.c | ||
virtio-vga.h | ||
vmware_vga.c | ||
xenfb.c | ||
xlnx_dp.c |