From: Peter Krempa Date: Mon, 8 Dec 2014 18:25:21 +0000 (+0100) Subject: qemu: migration: Unlock vm on failed ACL check in protocol v2 APIs X-Git-Tag: v1.1.3.9~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=63934cae465f757c774db1fa4e86d3c8bda4591b;p=thirdparty%2Flibvirt.git qemu: migration: Unlock vm on failed ACL check in protocol v2 APIs Avoid leaving the domain locked on a failed ACL check in qemuDomainMigratePerform() and qemuDomainMigrateFinish2(). Introduced in commit abf75aea247e (Add ACL checks into the QEMU driver). (cherry picked from commit 2bdcd29c713dfedd813c89f56ae98f6f3898313d) --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index d964c1761e..be3fa8ce0a 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -10087,8 +10087,10 @@ qemuDomainMigratePerform(virDomainPtr dom, if (!(vm = qemuDomObjFromDomain(dom))) goto cleanup; - if (virDomainMigratePerformEnsureACL(dom->conn, vm->def) < 0) + if (virDomainMigratePerformEnsureACL(dom->conn, vm->def) < 0) { + virObjectUnlock(vm); goto cleanup; + } if (flags & VIR_MIGRATE_PEER2PEER) { dconnuri = uri; @@ -10134,8 +10136,10 @@ qemuDomainMigrateFinish2(virConnectPtr dconn, goto cleanup; } - if (virDomainMigrateFinish2EnsureACL(dconn, vm->def) < 0) + if (virDomainMigrateFinish2EnsureACL(dconn, vm->def) < 0) { + virObjectUnlock(vm); goto cleanup; + } /* Do not use cookies in v2 protocol, since the cookie * length was not sufficiently large, causing failures