]> git.proxmox.com Git - qemu.git/commitdiff
vmdk: fix double free
authorKevin Wolf <kwolf@redhat.com>
Wed, 14 Jul 2010 08:30:31 +0000 (10:30 +0200)
committerKevin Wolf <kwolf@redhat.com>
Wed, 14 Jul 2010 08:30:42 +0000 (10:30 +0200)
fail_gd error case would also free rgd_buf that was already freed

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
(cherry picked from commit a161329b61106ab093aab6d3227ac85e0b8251a9)

Conflicts:

block/vmdk.c

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/vmdk.c

index 4e486225b7b7a8c26d70e95ff6726e36ebf41d9f..765e95a28a4025bd0d45684d3f8108d4f0bea684 100644 (file)
@@ -285,7 +285,6 @@ static int vmdk_snapshot_create(const char *filename, const char *backing_file)
         goto fail_rgd;
     if (write(snp_fd, rgd_buf, gd_size) == -1)
         goto fail_rgd;
-    qemu_free(rgd_buf);
 
     /* write GD */
     gd_buf = qemu_malloc(gd_size);
@@ -298,6 +297,7 @@ static int vmdk_snapshot_create(const char *filename, const char *backing_file)
     if (write(snp_fd, gd_buf, gd_size) == -1)
         goto fail_gd;
     qemu_free(gd_buf);
+    qemu_free(rgd_buf);
 
     close(p_fd);
     close(snp_fd);