]> 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 14:01:30 +0000 (07:01 -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 eb8264385ea7bf58268156b52c7852d1cb7caf47..9afec732cee15d337338c013b80788fdc8f79e21 100644 (file)
@@ -10622,8 +10622,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;
@@ -10670,8 +10672,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