mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 19:32:19 +00:00
hostdev: Fix index error in loop after remove an element
'virPCIDeviceList' is actually an array. Removing one element makes the rest of the element move. Use while loop, increase index only when not virPCIDeviceListDel(pcidevs, dev) Signed-off-by: Huanle Han <hanxueluo@gmail.com>
This commit is contained in:
parent
b84c5729d9
commit
7adb4bfc80
@ -785,7 +785,8 @@ virHostdevReAttachPCIDevices(virHostdevManagerPtr hostdev_mgr,
|
||||
* them and reset all the devices before re-attach.
|
||||
* Attach mac and port profile parameters to devices
|
||||
*/
|
||||
for (i = 0; i < virPCIDeviceListCount(pcidevs); i++) {
|
||||
i = 0;
|
||||
while (i < virPCIDeviceListCount(pcidevs)) {
|
||||
virPCIDevicePtr dev = virPCIDeviceListGet(pcidevs, i);
|
||||
virPCIDevicePtr activeDev = NULL;
|
||||
|
||||
@ -806,6 +807,7 @@ virHostdevReAttachPCIDevices(virHostdevManagerPtr hostdev_mgr,
|
||||
}
|
||||
|
||||
virPCIDeviceListDel(hostdev_mgr->activePCIHostdevs, dev);
|
||||
i++;
|
||||
}
|
||||
|
||||
/* At this point, any device that had been used by the guest is in
|
||||
|
Loading…
x
Reference in New Issue
Block a user