qemu_hotplug: audit *all* auditable device types in qemuDomainRemoveAuditDevice

Although all hotpluggable devices other than lease, controller,
watchdof, and vsock can be audited, and *are* audited when an unplug
is successful, only disk, net, and hostdev were actually being audited
on failure.

This patch corrects that omission.

Signed-off-by: Laine Stump <laine@laine.org>
ACKed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
Laine Stump 2019-03-25 10:23:51 -04:00
parent b914e0eca3
commit 444c5e7c43

View File

@ -5203,19 +5203,28 @@ qemuDomainRemoveAuditDevice(virDomainObjPtr vm,
case VIR_DOMAIN_DEVICE_HOSTDEV: case VIR_DOMAIN_DEVICE_HOSTDEV:
virDomainAuditHostdev(vm, detach->data.hostdev, "detach", success); virDomainAuditHostdev(vm, detach->data.hostdev, "detach", success);
break; break;
case VIR_DOMAIN_DEVICE_INPUT: case VIR_DOMAIN_DEVICE_INPUT:
virDomainAuditInput(vm, detach->data.input, "detach", success);
break;
case VIR_DOMAIN_DEVICE_CHR: case VIR_DOMAIN_DEVICE_CHR:
virDomainAuditChardev(vm, detach->data.chr, NULL, "detach", success);
break;
case VIR_DOMAIN_DEVICE_RNG: case VIR_DOMAIN_DEVICE_RNG:
case VIR_DOMAIN_DEVICE_MEMORY: virDomainAuditRNG(vm, detach->data.rng, NULL, "detach", success);
case VIR_DOMAIN_DEVICE_SHMEM: break;
case VIR_DOMAIN_DEVICE_REDIRDEV: case VIR_DOMAIN_DEVICE_MEMORY: {
/* unsigned long long oldmem = virDomainDefGetMemoryTotal(vm->def);
* These devices are supposed to be audited, but current code unsigned long long newmem = oldmem - detach->data.memory->size;
* doesn't audit on failure to remove the device.
*/
break;
virDomainAuditMemory(vm, oldmem, newmem, "update", success);
break;
}
case VIR_DOMAIN_DEVICE_SHMEM:
virDomainAuditShmem(vm, detach->data.shmem, "detach", success);
break;
case VIR_DOMAIN_DEVICE_REDIRDEV:
virDomainAuditRedirdev(vm, detach->data.redirdev, "detach", success);
break;
case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_LEASE:
case VIR_DOMAIN_DEVICE_CONTROLLER: case VIR_DOMAIN_DEVICE_CONTROLLER: