qcow2: Free allocated snapshot table on error
authorMax Reitz <mreitz@redhat.com>
Wed, 9 Oct 2013 08:51:05 +0000 (10:51 +0200)
committerKevin Wolf <kwolf@redhat.com>
Fri, 11 Oct 2013 14:49:59 +0000 (16:49 +0200)
If an error occurs during qcow2_write_snapshots, the newly allocated
snapshot table clusters are leaked and should thus be freed.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/qcow2-snapshot.c

index 3337974..f6f3e64 100644 (file)
@@ -279,6 +279,10 @@ static int qcow2_write_snapshots(BlockDriverState *bs)
     return 0;
 
 fail:
+    if (snapshots_offset > 0) {
+        qcow2_free_clusters(bs, snapshots_offset, snapshots_size,
+                            QCOW2_DISCARD_ALWAYS);
+    }
     return ret;
 }