From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=45072 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PmRQm-0004ny-U1 for qemu-devel@nongnu.org; Mon, 07 Feb 2011 08:47:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PmRQk-0006Yg-MS for qemu-devel@nongnu.org; Mon, 07 Feb 2011 08:47:04 -0500 Received: from mx1.redhat.com ([209.132.183.28]:41434) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PmRQk-0006Y2-F6 for qemu-devel@nongnu.org; Mon, 07 Feb 2011 08:47:02 -0500 Message-ID: <4D4FF83F.4000309@redhat.com> Date: Mon, 07 Feb 2011 14:48:47 +0100 From: Kevin Wolf MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH] QCOW2: bug fix - read base image beyond its size References: <1296745969-28287-1-git-send-email-ctang@us.ibm.com> In-Reply-To: <1296745969-28287-1-git-send-email-ctang@us.ibm.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Chunqiang Tang Cc: qemu-devel@nongnu.org Am 03.02.2011 16:12, schrieb 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: Chunqiang Tang Thanks, fixed up the coding style (whitespace) and applied to the block branch. However, I wonder if we can't share some code between qemu_iovec_memset_skip and qemu_iovec_copy. I think a cleanup patch would be possible there. Kevin