qemu/hw/display
Matheus Tavares Bernardino 9b50fd0290 hw/display: fix memleak from virtio_add_resource
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 &lt;<a href="mailto:quic_mathbern@quicinc.com" target="_blank">quic_mathbern@quicinc.com</a>&gt;<br>
2023-10-22 05:18:16 -04:00
..
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 hw/display: spelling fixes 2023-08-31 19:47:43 +02:00
cg3.c
cirrus_vga_internal.h
cirrus_vga_isa.c
cirrus_vga_rop2.h
cirrus_vga_rop.h
cirrus_vga.c bulk: Rename TARGET_FMT_plx -> HWADDR_FMT_plx 2023-01-18 11:14:34 +01:00
dpcd.c
edid-generate.c
edid-region.c
exynos4210_fimd.c
framebuffer.c
framebuffer.h
g364fb.c bulk: Rename TARGET_FMT_plx -> HWADDR_FMT_plx 2023-01-18 11:14:34 +01:00
i2c-ddc.c
jazz_led.c
Kconfig
macfb.c
meson.build gfxstream + rutabaga: meson support 2023-10-16 11:29:56 +04:00
next-fb.c
omap_dss.c hw/arm/omap: Drop useless casts from void * to pointer 2023-01-12 17:15:09 +00:00
omap_lcdc.c hw/arm/omap: Drop useless casts from void * to pointer 2023-01-12 17:15:09 +00:00
pl110_template.h
pl110.c
pxa2xx_lcd.c
qxl-logger.c
qxl-render.c ui: rename cursor_{put->unref} 2023-03-13 22:57:39 +04:00
qxl.c qxl: don't assert() if device isn't yet initialized 2023-09-08 13:08:52 +03:00
qxl.h ui/spice: Require spice-server >= 0.14.0 2023-01-19 13:30:01 +01:00
ramfb-standalone.c
ramfb.c hw/display/ramfb: plug slight guest-triggerable leak on mode setting 2023-10-03 15:40:09 +04:00
sii9022.c
sm501.c hw/display/sm501: Remove unneeded increment from loop 2023-05-05 12:34:22 -03:00
ssd0303.c hw/display: spelling fixes 2023-08-31 19:47:43 +02:00
ssd0323.c hw/display: spelling fixes 2023-08-31 19:47:43 +02:00
tc6393xb.c
tcx.c
trace-events ui/spice: QXLInterface method set_mm_time() is now dead, drop 2023-01-19 13:30:01 +01:00
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 hw/display: Compile vga.c as target-independent code 2023-04-20 11:25:32 +02:00
vhost-user-gpu-pci.c
vhost-user-gpu.c vhost-user-gpu: support dmabuf modifiers 2023-09-12 10:37:01 +04:00
vhost-user-vga.c
virtio-dmabuf.c hw/display: fix memleak from virtio_add_resource 2023-10-22 05:18:16 -04:00
virtio-gpu-base.c gfxstream + rutabaga: enable rutabaga 2023-10-16 11:29:56 +04:00
virtio-gpu-gl.c
virtio-gpu-pci-gl.c
virtio-gpu-pci-rutabaga.c gfxstream + rutabaga: add initial support for gfxstream 2023-10-16 11:29:56 +04:00
virtio-gpu-pci.c virtio-gpu: hostmem 2023-10-16 11:29:56 +04:00
virtio-gpu-rutabaga.c gfxstream + rutabaga: add initial support for gfxstream 2023-10-16 11:29:56 +04:00
virtio-gpu-udmabuf-stubs.c
virtio-gpu-udmabuf.c virtio-gpu-udmabuf: correct naming of QemuDmaBuf size properties 2023-07-17 15:22:28 +04:00
virtio-gpu-virgl.c virtio-gpu-virgl: use D3D11_SHARE_TEXTURE when available 2023-06-27 17:08:56 +02:00
virtio-gpu.c gfxstream + rutabaga: enable rutabaga 2023-10-16 11:29:56 +04:00
virtio-vga-gl.c
virtio-vga-rutabaga.c gfxstream + rutabaga: add initial support for gfxstream 2023-10-16 11:29:56 +04:00
virtio-vga.c virtio-gpu: hostmem 2023-10-16 11:29:56 +04:00
virtio-vga.h
vmware_vga.c ui: rename cursor_{put->unref} 2023-03-13 22:57:39 +04:00
xenfb.c hw/xen: Use XEN_PAGE_SIZE in PV backend drivers 2023-03-07 17:04:30 +00:00
xlnx_dp.c audio: propagate Error * out of audio_init 2023-10-03 10:29:40 +02:00