aboutsummaryrefslogtreecommitdiff
path: root/block/qcow2-refcount.c
diff options
context:
space:
mode:
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>2018-07-05 18:15:15 +0300
committerMax Reitz <mreitz@redhat.com>2018-07-09 19:43:24 +0200
commit0e4e4318eaa56c831001bdf617094807ec6d451c (patch)
tree9f73d96a1eb30f2177993056bc998a812a141a35 /block/qcow2-refcount.c
parent85456e0d16434ffe5b33f1354cd893180f2fb235 (diff)
downloadqemu-0e4e4318eaa56c831001bdf617094807ec6d451c.zip
qemu-0e4e4318eaa56c831001bdf617094807ec6d451c.tar.gz
qemu-0e4e4318eaa56c831001bdf617094807ec6d451c.tar.bz2
qcow2: add overlap check for bitmap directory
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-id: 20180705151515.779173-1-vsementsov@virtuozzo.com Signed-off-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'block/qcow2-refcount.c')
-rw-r--r--block/qcow2-refcount.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/block/qcow2-refcount.c b/block/qcow2-refcount.c
index 18c729a..1b9ecb1 100644
--- a/block/qcow2-refcount.c
+++ b/block/qcow2-refcount.c
@@ -2705,6 +2705,16 @@ int qcow2_check_metadata_overlap(BlockDriverState *bs, int ign, int64_t offset,
}
}
+ if ((chk & QCOW2_OL_BITMAP_DIRECTORY) &&
+ (s->autoclear_features & QCOW2_AUTOCLEAR_BITMAPS))
+ {
+ if (overlaps_with(s->bitmap_directory_offset,
+ s->bitmap_directory_size))
+ {
+ return QCOW2_OL_BITMAP_DIRECTORY;
+ }
+ }
+
return 0;
}