From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:53577) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TYFvb-0001jf-61 for qemu-devel@nongnu.org; Tue, 13 Nov 2012 07:49:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TYFvY-0001CC-44 for qemu-devel@nongnu.org; Tue, 13 Nov 2012 07:49:19 -0500 Received: from mx1.redhat.com ([209.132.183.28]:26659) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TYFvX-0001C5-RC for qemu-devel@nongnu.org; Tue, 13 Nov 2012 07:49:16 -0500 Message-ID: <50A241C9.4090106@redhat.com> Date: Tue, 13 Nov 2012 13:49:13 +0100 From: Kevin Wolf MIME-Version: 1.0 References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] block/vmdk.c: Fixed major bug in VMDK WRITE and READ handling - FIXES DATA CORRUPTION List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerhard Wiesinger Cc: qemu-devel@nongnu.org Am 10.11.2012 09:22, schrieb Gerhard Wiesinger: > Fixed a MAJOR BUG in VMDK files on file boundaries on reads > and ALSO ON WRITES WHICH MIGHT CORRUPT THE IMAGE AND DATA!!!!!! > > Triggered for example with the following VMDK file (partly listed): > # Extent description > RW 4193792 FLAT "XP-W1-f001.vmdk" 0 > RW 2097664 FLAT "XP-W1-f002.vmdk" 0 > RW 4193792 FLAT "XP-W1-f003.vmdk" 0 > RW 512 FLAT "XP-W1-f004.vmdk" 0 > RW 4193792 FLAT "XP-W1-f005.vmdk" 0 > RW 2097664 FLAT "XP-W1-f006.vmdk" 0 > RW 4193792 FLAT "XP-W1-f007.vmdk" 0 > RW 512 FLAT "XP-W1-f008.vmdk" 0 > > Patch includes: > 1.) Patch fixes wrong calculation on extent boundaries. Especially it fixes the relativeness of the sector number to the current extent. > > Verfied correctness with: > 1.) Converted either with Virtualbox to VDI and then with qemu-img and then with qemu-img only > VBoxManage clonehd --format vdi /VM/XP-W/new/XP-W1.vmdk ~/.VirtualBox/Harddisks/XP-W1-new-test.vdi > ./qemu-img convert -O raw ~/.VirtualBox/Harddisks/XP-W1-new-test.vdi /root/QEMU/VM-XP-W1/XP-W1-via-VBOX.img > md5sum /root/QEMU/VM-XP-W/XP-W1-direct.img > md5sum /root/QEMU/VM-XP-W/XP-W1-via-VBOX.img > => same MD5 hash > 2.) Verified debug log files > 3.) Run Windows XP successfully > 4.) chkdsk run successfully without any errors > > Signed-off-by: Gerhard Wiesinger Thanks, applied to the block branch. Something corrupted your patch (indentation of many unchanged lines differed by one space); I fixed it for this patch, but please check what caused this so that your next patch can apply without changes. It would also be a great idea to add a (VMDK only) test case to qemu-iotests that catches this kind of bugs. Kevin