]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Fix starting a domain with corrupted managed save file
authorJiri Denemark <jdenemar@redhat.com>
Tue, 13 Jun 2017 11:25:07 +0000 (13:25 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Tue, 13 Jun 2017 11:46:40 +0000 (13:46 +0200)
Commit v3.4.0-44-gac793bd71 fixed a memory leak, but failed to return
the special -3 value. Thus an attempt to start a domain with corrupted
managed save file would removed the corrupted file and report
"An error occurred, but the cause is unknown" instead of starting the
domain from scratch.

https://bugzilla.redhat.com/show_bug.cgi?id=1460962

src/qemu/qemu_driver.c

index 6654fd3e22835341485973d8544f636868e1739b..ba1dba5b7e4676dcbed946899cabb140b38d52d8 100644 (file)
@@ -6450,17 +6450,15 @@ qemuDomainSaveImageOpen(virQEMUDriverPtr driver,
     *ret_def = def;
     *ret_data = data;
 
+ cleanup:
     virObjectUnref(caps);
-
     return fd;
 
  error:
     virDomainDefFree(def);
     virQEMUSaveDataFree(data);
     VIR_FORCE_CLOSE(fd);
-    virObjectUnref(caps);
-
-    return -1;
+    goto cleanup;
 }
 
 static int ATTRIBUTE_NONNULL(4) ATTRIBUTE_NONNULL(5) ATTRIBUTE_NONNULL(6)