mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 22:25:25 +00:00
qemu: avoid leaking uninit data from hotplug to dumpxml
Detected by Coverity. The fix in 2c27dfa
didn't catch all bad
instances of memcpy(). Thankfully, on further analysis, all of
the problematic uses are only triggered by old qemu that lacks
-device.
* src/qemu/qemu_hotplug.c (qemuDomainAttachPciDiskDevice)
(qemuDomainAttachNetDevice, qemuDomainAttachHostPciDevice): Init
all fields since monitor only populates some of them.
This commit is contained in:
parent
884b98add5
commit
a4ca6e5d0f
@ -246,7 +246,7 @@ int qemuDomainAttachPciDiskDevice(struct qemud_driver *driver,
|
||||
}
|
||||
}
|
||||
} else {
|
||||
virDomainDevicePCIAddress guestAddr;
|
||||
virDomainDevicePCIAddress guestAddr = disk->info.addr.pci;
|
||||
ret = qemuMonitorAddPCIDisk(priv->mon,
|
||||
disk->src,
|
||||
type,
|
||||
@ -775,6 +775,7 @@ int qemuDomainAttachNetDevice(virConnectPtr conn,
|
||||
goto try_remove;
|
||||
}
|
||||
} else {
|
||||
guestAddr = net->info.addr.pci;
|
||||
if (qemuMonitorAddPCINetwork(priv->mon, nicstr,
|
||||
&guestAddr) < 0) {
|
||||
qemuDomainObjExitMonitorWithDriver(driver, vm);
|
||||
@ -929,7 +930,7 @@ int qemuDomainAttachHostPciDevice(struct qemud_driver *driver,
|
||||
configfd, configfd_name);
|
||||
qemuDomainObjExitMonitorWithDriver(driver, vm);
|
||||
} else {
|
||||
virDomainDevicePCIAddress guestAddr;
|
||||
virDomainDevicePCIAddress guestAddr = hostdev->info.addr.pci;
|
||||
|
||||
qemuDomainObjEnterMonitorWithDriver(driver, vm);
|
||||
ret = qemuMonitorAddPCIHostDevice(priv->mon,
|
||||
|
Loading…
Reference in New Issue
Block a user