]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: migration: Unlock vm on failed ACL check in protocol v2 APIs
authorPeter Krempa <pkrempa@redhat.com>
Mon, 8 Dec 2014 18:25:21 +0000 (19:25 +0100)
committerEric Blake <eblake@redhat.com>
Mon, 22 Dec 2014 23:58:56 +0000 (16:58 -0700)
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)

src/qemu/qemu_driver.c

index 67cf805f1bfaa5196378f51d876300dae8f87ed2..f56742a560c2a59d58d094052abed10bce97656f 100644 (file)
@@ -10743,8 +10743,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;
@@ -10791,8 +10793,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