From nobody Sun Feb 8 18:43:34 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1579622499; cv=none; d=zohomail.com; s=zohoarc; b=Ns9cj5ydu6t+NnB2zmxIj0lh++mX9W6sB6v85lwrDhY9v70ojtRw3UDDxhtfBVqLSLzIprYmRO5ZCijMHFr42KwwODzKY+OvX3LcRjZw9eKOtSahcQBE2W0qJNSHf6ogyY2o/OxAUu6ct81nHPRq3epfso6q0+58PLJYeB1I3JI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1579622499; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Ud3/EKB5xqJnB3xGy/CWxF9HBqZ8hmG/5T5OxShfKE0=; b=ETv2J2NAU6GQycUk+c3bPWvAwdswSupWkjDkkjF+Cx4gZdu4cxWYJAj9zOoQeFWITC0IVkK0HsMMJksRkao0FjkWk2ysSpCdTFcM6ELfiHlB3DPXU21y6PfLZQv8XL9qcLHC2PdxE8DDPBQ4X+y68rjB7fjuH9g5Dtyxc5dt/AE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1579622499361659.0029172787403; Tue, 21 Jan 2020 08:01:39 -0800 (PST) Received: from localhost ([::1]:57242 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1itvyD-0005s1-G2 for importer@patchew.org; Tue, 21 Jan 2020 11:01:37 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:60715) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1itvwB-0003uV-Pw for qemu-devel@nongnu.org; Tue, 21 Jan 2020 10:59:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1itvwA-0004bZ-KS for qemu-devel@nongnu.org; Tue, 21 Jan 2020 10:59:31 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:57352 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1itvwA-0004bC-HJ for qemu-devel@nongnu.org; Tue, 21 Jan 2020 10:59:30 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-37-q_DzYjmpMBK8yMscOAZlLA-1; Tue, 21 Jan 2020 10:59:23 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 69622107ACC4; Tue, 21 Jan 2020 15:59:22 +0000 (UTC) Received: from localhost (ovpn-117-116.ams2.redhat.com [10.36.117.116]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 45E7C8BE19; Tue, 21 Jan 2020 15:59:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579622370; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Ud3/EKB5xqJnB3xGy/CWxF9HBqZ8hmG/5T5OxShfKE0=; b=MZ5imw87PLKxLGaKEK9OU9MTueNsVYY4GDTj7IUBwxXpxcPaFZXilwJL6a6n1VJjMN+Lba DpuHP0IzFTvmkVsxy+Te+bVjebB6XjyHyuEaA7L99zi/g/US8xFegrs3e2qT9o7iFOKJWl +TgzlFi34ud/Ozoo/c+il7iNUYp/UgY= From: Max Reitz To: qemu-block@nongnu.org Subject: [PATCH 1/2] qemu-img: Fix convert -n -B for backing-less targets Date: Tue, 21 Jan 2020 16:59:14 +0100 Message-Id: <20200121155915.98232-2-mreitz@redhat.com> In-Reply-To: <20200121155915.98232-1-mreitz@redhat.com> References: <20200121155915.98232-1-mreitz@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-MC-Unique: q_DzYjmpMBK8yMscOAZlLA-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 207.211.31.120 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-stable@nongnu.org, qemu-devel@nongnu.org, Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" s.target_has_backing does not reflect whether the target BDS has a backing file; it only tells whether we should use a backing file during conversion (specified by -B). As such, if you use convert -n, the target does not necessarily actually have a backing file, and then dereferencing out_bs->backing fails here. When converting to an existing file, we should set target_backing_sectors to a negative value, because first, as the comment explains, this value is only used for optimization, so it is always fine to do that. Second, we use this value to determine where the target must be initialized to zeroes (overlays are initialized to zero after the end of their backing file). When converting to an existing file, we cannot assume that to be true. Cc: qemu-stable@nongnu.org Fixes: 351c8efff9ad809c822d55620df54d575d536f68 ("qemu-img: Special post-backing convert handling") Signed-off-by: Max Reitz Reviewed-by: John Snow --- qemu-img.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qemu-img.c b/qemu-img.c index 6233b8ca56..89a1d11781 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -2503,7 +2503,7 @@ static int img_convert(int argc, char **argv) } } =20 - if (s.target_has_backing) { + if (s.target_has_backing && s.target_is_new) { /* Errors are treated as "backing length unknown" (which means * s.target_backing_sectors has to be negative, which it will * be automatically). The backing file length is used only --=20 2.24.1 From nobody Sun Feb 8 18:43:34 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1579622481; cv=none; d=zohomail.com; s=zohoarc; b=LVBNhk9Rnx4yWqdBT8Wpl4hzcFLXO0CxLyX1V5xGN7TkGcZRs8JrOGtnmuuApn9LP0vwHI+T/ls9R7QN1lZQ5AIY+K/thA07+o48CqEtwB+1+/BQcrOmvNp04CW5Sty9E16LjpIrilL5QNd29cL4P1GKMSSZinQaSsTsauhoUFM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1579622481; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5YOvBJzsB/me9wS33tdEezh/VBgVL25dn4DHeAbG1vk=; b=lHo/d9x+vYtrWz/Hyj1Q1+SNkEPM6KpU+OJTLLcqtFiERNG095T37WtWTpaKmdDDhNWM1LWg4D5+RAx6Jpg7KFvOF+rBTKyB1DjrHDjDi2ok0mPNdmkMpz/PpX7pgVnm6dLaKCGjr/czkKq59hUVa546PdU47+fRFgrXqNQYa1A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1579622481099894.9093938600552; Tue, 21 Jan 2020 08:01:21 -0800 (PST) Received: from localhost ([::1]:57218 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1itvxv-0005Kd-4a for importer@patchew.org; Tue, 21 Jan 2020 11:01:19 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:60675) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1itvw9-0003rl-Il for qemu-devel@nongnu.org; Tue, 21 Jan 2020 10:59:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1itvw8-0004a8-Ga for qemu-devel@nongnu.org; Tue, 21 Jan 2020 10:59:29 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:42086 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1itvw8-0004Zs-DF for qemu-devel@nongnu.org; Tue, 21 Jan 2020 10:59:28 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-389-T4PWjjnlNUSL6IX24qmKEw-1; Tue, 21 Jan 2020 10:59:26 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 29321DB35; Tue, 21 Jan 2020 15:59:25 +0000 (UTC) Received: from localhost (ovpn-117-116.ams2.redhat.com [10.36.117.116]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 169008642E; Tue, 21 Jan 2020 15:59:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579622368; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5YOvBJzsB/me9wS33tdEezh/VBgVL25dn4DHeAbG1vk=; b=adhgYGkPvAiM507NQL1VZXS4N/9rtI3QTsuoqG+m2ewq4ceyki09bADlMWEvxkw+HRMknD XF/7kNe8Q+JdIIx/3rSdQbtgmAPEFnNpLpdZbfeK3d3QrOMf3oM+qjUnGu21ubiMx8amXL AUDJbzZ2CdLl17LzLvVtKSQIO4mP3Vw= From: Max Reitz To: qemu-block@nongnu.org Subject: [PATCH 2/2] iotests: Test convert -n -B to backing-less target Date: Tue, 21 Jan 2020 16:59:15 +0100 Message-Id: <20200121155915.98232-3-mreitz@redhat.com> In-Reply-To: <20200121155915.98232-1-mreitz@redhat.com> References: <20200121155915.98232-1-mreitz@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-MC-Unique: T4PWjjnlNUSL6IX24qmKEw-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 207.211.31.81 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-stable@nongnu.org, qemu-devel@nongnu.org, Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This must not crash. Signed-off-by: Max Reitz Reviewed-by: John Snow --- tests/qemu-iotests/122 | 14 ++++++++++++++ tests/qemu-iotests/122.out | 5 +++++ 2 files changed, 19 insertions(+) diff --git a/tests/qemu-iotests/122 b/tests/qemu-iotests/122 index dfa350936f..f7a3ae684a 100755 --- a/tests/qemu-iotests/122 +++ b/tests/qemu-iotests/122 @@ -276,6 +276,20 @@ $QEMU_IMG convert -O $IMGFMT -n "$TEST_IMG" "$TEST_IMG= ".orig =20 $QEMU_IMG compare "$TEST_IMG" "$TEST_IMG".orig =20 +echo +echo '=3D=3D=3D -n -B to an image without a backing file =3D=3D=3D' +echo + +# Base for the output +TEST_IMG=3D"$TEST_IMG".base _make_test_img 64M + +# Output that does have $TEST_IMG.base set as its (implicit) backing file +TEST_IMG=3D"$TEST_IMG".orig _make_test_img 64M + +# Convert with -n, which should not confuse -B with "target BDS has a +# backing file" +$QEMU_IMG convert -O $IMGFMT -B "$TEST_IMG".base -n "$TEST_IMG" "$TEST_IMG= ".orig + # success, all done echo '*** done' rm -f $seq.full diff --git a/tests/qemu-iotests/122.out b/tests/qemu-iotests/122.out index 849b6cc2ef..1a35951a80 100644 --- a/tests/qemu-iotests/122.out +++ b/tests/qemu-iotests/122.out @@ -228,4 +228,9 @@ Formatting 'TEST_DIR/t.IMGFMT.orig', fmt=3DIMGFMT size= =3D67108864 wrote 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) Images are identical. + +=3D=3D=3D -n -B to an image without a backing file =3D=3D=3D + +Formatting 'TEST_DIR/t.IMGFMT.base', fmt=3DIMGFMT size=3D67108864 +Formatting 'TEST_DIR/t.IMGFMT.orig', fmt=3DIMGFMT size=3D67108864 *** done --=20 2.24.1