mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 21:55:25 +00:00
Fix use of uninitialized memory when releasing PCI slots
The 'function' field in the PCI address was not correctly initialized, so it was building the wrong address address string and so not removing all functions from the in use list. * src/qemu/qemu_command.c: Fix initialization of PCI function
This commit is contained in:
parent
9f40b80ba8
commit
56a77b4920
@ -931,14 +931,14 @@ int qemuDomainPCIAddressReleaseSlot(qemuDomainPCIAddressSetPtr addrs, int slot)
|
||||
{
|
||||
virDomainDeviceInfo dev;
|
||||
char *addr;
|
||||
int function;
|
||||
int ret = 0;
|
||||
unsigned int *function = &dev.addr.pci.function;
|
||||
|
||||
dev.addr.pci.domain = 0;
|
||||
dev.addr.pci.bus = 0;
|
||||
dev.addr.pci.slot = slot;
|
||||
|
||||
for (function = 0; function <= QEMU_PCI_ADDRESS_LAST_FUNCTION; function++) {
|
||||
for (*function = 0; *function <= QEMU_PCI_ADDRESS_LAST_FUNCTION; (*function)++) {
|
||||
addr = qemuPCIAddressAsString(&dev);
|
||||
if (!addr)
|
||||
return -1;
|
||||
@ -950,7 +950,7 @@ int qemuDomainPCIAddressReleaseSlot(qemuDomainPCIAddressSetPtr addrs, int slot)
|
||||
|
||||
VIR_FREE(addr);
|
||||
|
||||
if (qemuDomainPCIAddressReleaseFunction(addrs, slot, function) < 0)
|
||||
if (qemuDomainPCIAddressReleaseFunction(addrs, slot, *function) < 0)
|
||||
ret = -1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user