mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 21:55:25 +00:00
qemu: fix infinite loop in OOM error path
A loop in qemuPrepareHostdevPCIDevices() intended to cycle through all the objects on the list pcidevs was doing "while (listcount > 0)", but nothing in the body of the loop was reducing the size of the list - it was instead removing items from a *different* list. It has now been safely changed to a for() loop.
This commit is contained in:
parent
b2a2d00f57
commit
a47b9e879c
@ -638,8 +638,8 @@ inactivedevs:
|
||||
/* Only steal all the devices from driver->activePciHostdevs. We will
|
||||
* free them in virObjectUnref().
|
||||
*/
|
||||
while (virPCIDeviceListCount(pcidevs) > 0) {
|
||||
virPCIDevicePtr dev = virPCIDeviceListGet(pcidevs, 0);
|
||||
for (i = 0; i < virPCIDeviceListCount(pcidevs); i++) {
|
||||
virPCIDevicePtr dev = virPCIDeviceListGet(pcidevs, i);
|
||||
virPCIDeviceListSteal(driver->activePciHostdevs, dev);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user