vfio/pci: Fix a potential memory leak in vfio_listener_region_add

When there is an failure in vfio_listener_region_add() and the section
belongs to a ram device, there is an inaccurate error report which should
never be related to vfio_dma_map failure. The memory holding err is also
incrementally leaked in each failure.

Fix it by reporting the real error and free it.

Fixes: 567b5b309a ("vfio/pci: Relax DMA map errors for MMIO regions")
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
Zhenzhong Duan 2023-10-09 10:20:46 +08:00 committed by Cédric Le Goater
parent 7e63b31138
commit fde4dbb7e6
1 changed files with 1 additions and 1 deletions

View File

@ -763,7 +763,7 @@ static void vfio_listener_region_add(MemoryListener *listener,
fail:
if (memory_region_is_ram_device(section->mr)) {
error_report("failed to vfio_dma_map. pci p2p may not work");
error_reportf_err(err, "PCI p2p may not work: ");
return;
}
/*