• C
    QCOW2: bug fix - read base image beyond its size · e0d9c6f9
    Chunqiang Tang 提交于
    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: NChunqiang Tang <ctang@us.ibm.com>
    Signed-off-by: NKevin Wolf <kwolf@redhat.com>
    e0d9c6f9
qcow2.c 40.1 KB