]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
block/qcow2-bitmap: fix use of uninitialized pointer
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Fri, 22 Sep 2017 14:43:53 +0000 (17:43 +0300)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Thu, 28 Sep 2017 21:51:42 +0000 (16:51 -0500)
Without initialization to zero dirty_bitmap field may be not zero
for a bitmap which should not be stored and
qcow2_store_persistent_dirty_bitmaps will erroneously call
store_bitmap for it which leads to SIGSEGV on bdrv_dirty_bitmap_name.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-id: 20170922144353.4220-1-vsementsov@virtuozzo.com
Cc: qemu-stable@nongnu.org
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
(cherry picked from commit 5330f32b71b1868bdb3b444733063cb5adc4e8e6)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
block/qcow2-bitmap.c

index e8d3bdbd6eaf9dd73a5ef6a007a2f4e6f95117d4..14f41d04270a28a9f4be12c3d7ae14f844331796 100644 (file)
@@ -602,7 +602,7 @@ static Qcow2BitmapList *bitmap_list_load(BlockDriverState *bs, uint64_t offset,
             goto fail;
         }
 
-        bm = g_new(Qcow2Bitmap, 1);
+        bm = g_new0(Qcow2Bitmap, 1);
         bm->table.offset = e->bitmap_table_offset;
         bm->table.size = e->bitmap_table_size;
         bm->flags = e->flags;