]> 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>
Tue, 23 Dec 2014 17:45:50 +0000 (10:45 -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 bee0584f376fc13aed863269ece0cab8137c6ad4..a0be66f1e4767ace51b4b677f0d44595bc9d7342 100644 (file)
@@ -10098,8 +10098,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;
@@ -10145,8 +10147,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