From: Chris Lalancette Date: Mon, 14 Jun 2010 21:16:53 +0000 (-0400) Subject: Fix crash when detaching devices from qemu domains. X-Git-Tag: v0.8.2~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ec75b0cf59bc9eddce1187fd7e2a669e3ffd58ce;p=thirdparty%2Flibvirt.git Fix crash when detaching devices from qemu domains. Make sure to *not* call qemuDomainPCIAddressReleaseAddr if QEMUD_CMD_FLAG_DEVICE is *not* set (for older qemu). This prevents a crash when trying to do device detachment from a qemu guest. Signed-off-by: Chris Lalancette --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index ce0999ab46..487bfa3dd1 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -8567,9 +8567,9 @@ static int qemudDomainDetachPciControllerDevice(struct qemud_driver *driver, vm->def->ncontrollers = 0; } - if (qemuDomainPCIAddressReleaseAddr(priv->pciaddrs, &detach->info) < 0) { + if ((qemuCmdFlags & QEMUD_CMD_FLAG_DEVICE) && + qemuDomainPCIAddressReleaseAddr(priv->pciaddrs, &detach->info) < 0) VIR_WARN0("Unable to release PCI address on controller"); - } virDomainControllerDefFree(detach); @@ -8775,9 +8775,9 @@ static int qemudDomainDetachHostPciDevice(struct qemud_driver *driver, pciFreeDevice(pci); } - if (qemuDomainPCIAddressReleaseAddr(priv->pciaddrs, &detach->info) < 0) { + if ((qemuCmdFlags & QEMUD_CMD_FLAG_DEVICE) && + qemuDomainPCIAddressReleaseAddr(priv->pciaddrs, &detach->info) < 0) VIR_WARN0("Unable to release PCI address on controller"); - } if (vm->def->nhostdevs > 1) { memmove(vm->def->hostdevs + i,