block/qcow2-bitmap: fix use of uninitialized pointer
PATCH 1/1 block/qcow2-bitmap: fix use of uninitialized pointer
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 SYGSEGV on bdrv_dirty_bitmap_name.
--- block/qcow2-bitmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
block/qcow2-bitmap.c +1 -1
@@ -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;
Signature · 1 line
2.11.1
Quoted 4 lines · Vladimir Sementsov-Ogievskiy
Without initialization to zero
dirty_bitmapfield may be not zero for a bitmap which should not be stored andqcow2_store_persistent_dirty_bitmapswill erroneously callstore_bitmapfor it which leads to SYGSEGV onbdrv_dirty_bitmap_name.
s/SYG/SIG/
Introduced in commit 5f72826e, therefore it impacts 2.10, so:
Quoted 5 lines
Signed-off-by Vladimir Sementsov-Ogievskiy <[email protected]>--- block/qcow2-bitmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Signature · 3 lines
Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
Quoted 4 lines · Vladimir Sementsov-Ogievskiy
Without initialization to zero
dirty_bitmapfield may be not zero for a bitmap which should not be stored andqcow2_store_persistent_dirty_bitmapswill erroneously callstore_bitmapfor it which leads to SYGSEGV onbdrv_dirty_bitmap_name.
please fix it to SIGSEGV...
Quoted 19 lines
Signed-off-by Vladimir Sementsov-Ogievskiy <[email protected]>--- block/qcow2-bitmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)block/qcow2-bitmap.c +1
-1@@ -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;
Signature · 2 lines
Best regards, Vladimir
Quoted 9 lines · Vladimir Sementsov-Ogievskiy
Without initialization to zero
dirty_bitmapfield may be not zero for a bitmap which should not be stored andqcow2_store_persistent_dirty_bitmapswill erroneously callstore_bitmapfor it which leads to SYGSEGV onbdrv_dirty_bitmap_name.Signed-off-by Vladimir Sementsov-Ogievskiy <[email protected]>--- block/qcow2-bitmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Quoted 9 lines · Vladimir Sementsov-Ogievskiy
Without initialization to zero
dirty_bitmapfield may be not zero for a bitmap which should not be stored andqcow2_store_persistent_dirty_bitmapswill erroneously callstore_bitmapfor it which leads to SYGSEGV onbdrv_dirty_bitmap_name.Signed-off-by Vladimir Sementsov-Ogievskiy <[email protected]>--- block/qcow2-bitmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Thanks, fixed the commit message and applied it to my block branch:
https://github.com/XanClic/qemu/commits/block
Max
Quoting Vladimir Sementsov-Ogievskiy (2017-09-22 09:43:53)
Quoted 6 lines
Without initialization to zero
dirty_bitmapfield may be not zero for a bitmap which should not be stored andqcow2_store_persistent_dirty_bitmapswill erroneously callstore_bitmapfor it which leads to SYGSEGV onbdrv_dirty_bitmap_name.Signed-off-by Vladimir Sementsov-Ogievskiy <[email protected]>
FYI: this patch has been tagged for stable 2.10.1, but is not yet upstream. Patch freeze for 2.10.1 is September 27th.
Quoted 21 lines
--- block/qcow2-bitmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)block/qcow2-bitmap.c +1
-1@@ -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;Signature · 1 line
2.11.1