mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-08 22:15:21 +00:00
Fix auditing of disk hotunplug operations
The qemuAuditDisk calls in disk hotunplug operations were being passed 'ret >= 0', but the code which sets ret to 0 was not yet executed, and the error path had already jumped to the 'cleanup' label. This meant hotunplug failures were never audited, and hotunplug success was audited as a failure * src/qemu/qemu_hotplug.c: Fix auditing of hotunplug
This commit is contained in:
parent
eb661ce3ee
commit
020342e68d
@ -1191,12 +1191,14 @@ int qemuDomainDetachPciDiskDevice(struct qemud_driver *driver,
|
||||
if (qemuCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE)) {
|
||||
if (qemuMonitorDelDevice(priv->mon, detach->info.alias) < 0) {
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
qemuAuditDisk(vm, detach, NULL, "detach", false);
|
||||
goto cleanup;
|
||||
}
|
||||
} else {
|
||||
if (qemuMonitorRemovePCIDevice(priv->mon,
|
||||
&detach->info.addr.pci) < 0) {
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
qemuAuditDisk(vm, detach, NULL, "detach", false);
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
@ -1206,7 +1208,7 @@ int qemuDomainDetachPciDiskDevice(struct qemud_driver *driver,
|
||||
|
||||
qemuDomainObjExitMonitorWithDriver(driver, vm);
|
||||
|
||||
qemuAuditDisk(vm, detach, NULL, "detach", ret >= 0);
|
||||
qemuAuditDisk(vm, detach, NULL, "detach", true);
|
||||
|
||||
if (qemuCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE) &&
|
||||
qemuDomainPCIAddressReleaseAddr(priv->pciaddrs, &detach->info) < 0)
|
||||
@ -1283,6 +1285,7 @@ int qemuDomainDetachDiskDevice(struct qemud_driver *driver,
|
||||
qemuDomainObjEnterMonitorWithDriver(driver, vm);
|
||||
if (qemuMonitorDelDevice(priv->mon, detach->info.alias) < 0) {
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
qemuAuditDisk(vm, detach, NULL, "detach", false);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
@ -1291,7 +1294,7 @@ int qemuDomainDetachDiskDevice(struct qemud_driver *driver,
|
||||
|
||||
qemuDomainObjExitMonitorWithDriver(driver, vm);
|
||||
|
||||
qemuAuditDisk(vm, detach, NULL, "detach", ret >= 0);
|
||||
qemuAuditDisk(vm, detach, NULL, "detach", true);
|
||||
|
||||
virDomainDiskRemove(vm->def, i);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user