diff options
author | Paolo Bonzini | 2013-01-22 15:01:12 +0100 |
---|---|---|
committer | Kevin Wolf | 2013-01-25 18:18:35 +0100 |
commit | 1b0952445522af73b0e78420a9078b3653923703 (patch) | |
tree | b736c93c1884f518c567d4ff3bd7dc9199ec4948 /util | |
parent | mirror: do nothing on zero-sized disk (diff) | |
download | qemu-1b0952445522af73b0e78420a9078b3653923703.tar.gz qemu-1b0952445522af73b0e78420a9078b3653923703.tar.xz qemu-1b0952445522af73b0e78420a9078b3653923703.zip |
hbitmap: add assertion on hbitmap_iter_init
hbitmap_iter_init causes an out-of-bounds access when the "first"
argument is or greater than or equal to the size of the bitmap.
Forbid this with an assertion, and remove the failing testcase.
Reported-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'util')
-rw-r--r-- | util/hbitmap.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/util/hbitmap.c b/util/hbitmap.c index fb7e01e8c5..2aa487db74 100644 --- a/util/hbitmap.c +++ b/util/hbitmap.c @@ -147,6 +147,7 @@ void hbitmap_iter_init(HBitmapIter *hbi, const HBitmap *hb, uint64_t first) hbi->hb = hb; pos = first >> hb->granularity; + assert(pos < hb->size); hbi->pos = pos >> BITS_PER_LEVEL; hbi->granularity = hb->granularity; |