]> git.ipfire.org Git - thirdparty/qemu.git/commit
QCOW2: bug fix - read base image beyond its size
authorChunqiang Tang <ctang@us.ibm.com>
Thu, 3 Feb 2011 15:12:49 +0000 (10:12 -0500)
committerKevin Wolf <kwolf@redhat.com>
Fri, 11 Feb 2011 13:33:56 +0000 (14:33 +0100)
commit607a375709625a439c5bbdbfb62f8052276d33ad
tree7f4016651245bd030df574fa08e14c760c9a2b9b
parentac12a5af0bb48e2cee46232480dc5f6d8d8241b9
QCOW2: bug fix - read base image beyond its size

This patch fixes the following bug in QCOW2. For a QCOW2 image that is larger
than its base image, when handling a read request straddling over the end of the
base image, the QCOW2 driver attempts to read beyond the end of the base image
and the request would fail.

This bug was found by Fast Virtual Disk (FVD)'s fully automated testing tool.
The following test triggered the bug.

dd if=/dev/zero of=/var/ramdisk/truth.raw count=0 bs=1 seek=1098561536
dd if=/dev/zero of=/var/ramdisk/zero-500M.raw count=0 bs=1 seek=593099264
./qemu-img create -f qcow2 -ocluster_size=65536,backing_fmt=blksim -b /var/ramdisk/zero-500M.raw /var/ramdisk/test.qcow2 1098561536
./qemu-io --auto --seed=30477694 --truth=/var/ramdisk/truth.raw --format=qcow2 --test=blksim:/var/ramdisk/test.qcow2 --verify_write=true --compare_before=false --compare_after=true --round=100000 --parallel=100 --io_size=10485760 --fail_prob=0 --cancel_prob=0 --instant_qemubh=true

Signed-off-by: Chunqiang Tang <ctang@us.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
(cherry picked from commit e0d9c6f93729c9bfc98fcafcd73098bb8e131aeb)
block/qcow2.c
cutils.c
qemu-common.h