提交 ee46360b 编写于 作者: P Peter Krempa

qemu: hotplug: Don't leak 'disk' if VM crashes during unplug finishing

qemuDomainRemoveDiskDevice would leak the disk to be removed if the VM
crashed since it was removed from the definition but not freed.

Broken in commit 105bcdde which moved the removal from the definition
earlier.
Signed-off-by: NPeter Krempa <pkrempa@redhat.com>
Reviewed-by: NJán Tomko <jtomko@redhat.com>
上级 d3f9dda2
......@@ -3864,6 +3864,7 @@ qemuDomainRemoveDiskDevice(virQEMUDriverPtr driver,
bool prUsed = false;
const char *authAlias = NULL;
const char *encAlias = NULL;
int ret = -1;
VIR_DEBUG("Removing disk %s from domain %p %s",
disk->info.alias, vm, vm->def->name);
......@@ -3918,7 +3919,7 @@ qemuDomainRemoveDiskDevice(virQEMUDriverPtr driver,
ignore_value(qemuMonitorDelObject(priv->mon, qemuDomainGetManagedPRAlias()));
if (qemuDomainObjExitMonitor(driver, vm) < 0)
return -1;
goto cleanup;
virDomainAuditDisk(vm, disk->src, NULL, "detach", true);
......@@ -3938,8 +3939,11 @@ qemuDomainRemoveDiskDevice(virQEMUDriverPtr driver,
ignore_value(qemuRemoveSharedDevice(driver, &dev, vm->def->name));
virDomainUSBAddressRelease(priv->usbaddrs, &disk->info);
ret = 0;
cleanup:
virDomainDiskDefFree(disk);
return 0;
return ret;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册