From: Daniel P. Berrange Date: Wed, 3 Mar 2010 15:15:21 +0000 (+0000) Subject: Add missing device type check in QEMU PCI hotunplug X-Git-Tag: v0.7.7~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=badfe6c75ee459c10d44beb5c52652c1af1842f1;p=thirdparty%2Flibvirt.git Add missing device type check in QEMU PCI hotunplug The QEMU hotunplug code for PCI devices was looking at host devices in the guest config without first filtering non PCI devices. This means it was reading garbage * src/qemu/qemu_driver.c: Filter out non-PCI devices --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index bb3edde8bb..b03ec2d00b 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -6854,6 +6854,10 @@ static int qemudDomainDetachHostPciDevice(struct qemud_driver *driver, pciDevice *pci; for (i = 0 ; i < vm->def->nhostdevs ; i++) { + if (vm->def->hostdevs[i]->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS || + vm->def->hostdevs[i]->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) + continue; + unsigned domain = vm->def->hostdevs[i]->source.subsys.u.pci.domain; unsigned bus = vm->def->hostdevs[i]->source.subsys.u.pci.bus; unsigned slot = vm->def->hostdevs[i]->source.subsys.u.pci.slot;