From ea1a9b5fddd1562abf31eb5c2502879bfd25903e Mon Sep 17 00:00:00 2001 From: Jiri Denemark Date: Fri, 30 Nov 2012 16:52:03 +0100 Subject: [PATCH] qemu: Don't free PCI device if adding it to activePciHostdevs fails The device is still referenced from pcidevs and freeing it would leave an invalid pointer there. --- src/qemu/qemu_hostdev.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/qemu/qemu_hostdev.c b/src/qemu/qemu_hostdev.c index ab0f173219..b79319e389 100644 --- a/src/qemu/qemu_hostdev.c +++ b/src/qemu/qemu_hostdev.c @@ -491,10 +491,8 @@ int qemuPrepareHostdevPCIDevices(virQEMUDriverPtr driver, /* Loop 5: Now mark all the devices as active */ for (i = 0; i < pciDeviceListCount(pcidevs); i++) { pciDevice *dev = pciDeviceListGet(pcidevs, i); - if (pciDeviceListAdd(driver->activePciHostdevs, dev) < 0) { - pciFreeDevice(dev); + if (pciDeviceListAdd(driver->activePciHostdevs, dev) < 0) goto inactivedevs; - } } /* Loop 6: Now remove the devices from inactive list. */ -- 2.39.5