From nobody Sat May 30 15:30:46 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=fail (Bad Signature); dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1779465047440384.70613760638093; Fri, 22 May 2026 08:50:47 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 3AD6841ABD; Fri, 22 May 2026 11:50:46 -0400 (EDT) Received: from [172.19.199.4] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id CE1B141B98; Fri, 22 May 2026 11:49:47 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id E401C41AAD; Fri, 22 May 2026 11:49:37 -0400 (EDT) Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazlp170100001.outbound.protection.outlook.com [IPv6:2a01:111:f403:c201::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id D926B41A7B for ; Fri, 22 May 2026 11:49:35 -0400 (EDT) Received: from AS8PR08MB10313.eurprd08.prod.outlook.com (2603:10a6:20b:5c1::11) by DU0PR08MB8188.eurprd08.prod.outlook.com (2603:10a6:10:3ef::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May 2026 15:49:27 +0000 Received: from AS8PR08MB10313.eurprd08.prod.outlook.com ([fe80::d526:ccec:a0e3:f76c]) by AS8PR08MB10313.eurprd08.prod.outlook.com ([fe80::d526:ccec:a0e3:f76c%5]) with mapi id 15.21.0048.016; Fri, 22 May 2026 15:49:27 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FORGED_SPF_HELO,HTML_MESSAGE,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE,SPF_HELO_PASS autolearn=no autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nprpNKnl4uMUPjIfTQApoTvb72DliQK6kzRQF/rGQTVo6DimtbYAHt05Ss2AndAtoXdjYr/FYNjgaE1VikT8nQr+nEDcJqEXJQ5679VDLpGjJRYfJQHlvAZEK+Rma5nhi1OIFHytEUAaelKegLuU0EDOprA5texBR7AboUT2IjVUS1aPdPU8VfpUEQVI0IHI4yBpt9KLdqx/HFhvI0f0Xi9NBa4jXY/O9enRh87St5q00rJTSmzXhq9oYiO8PJup3Sr9MZ23WLBrDTCr+VG7kIT3qY7P+FCn27T7pS5ekhFoji7PKWoSAXMkTCEOwrHHEg4NzAQYJyRhgZ0PJ5V+Fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=EUDM7y6REWSx1WDCFqJQNlGY6Cx/MBWWSIYPb1HF0AA=; b=iwtwAYoRT3cbUDt9WGfBW1wPkVmkPkNgLqPtGXfefd3ebPkk2QPvNNEXlL2U+Jdgfz4qW8be/zwgrqzTK8a2l/masrqK8XQwyM05U49vl8fmIExA1SBnPGOU+xUKvaSiDVc9+eJCBk5nynSoC3Du0Mfm+JWNZdwfuQjP4ZUhCjh+sV10Uhshh4mDoPg4UVAd0hGG88AuWGI5JBRXEztqxW2Wv2pZpYYhOSEDExEgmAGo3mFGYGjzeQH9UIL+kf1/bdtc88RrA5A/76fk1QMnhuhma7MTZBh9XIb2SANMkGMGoHQW+YRgffFm+PC82LmM0cA+6XH38IZuBuY1L7l2xA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EUDM7y6REWSx1WDCFqJQNlGY6Cx/MBWWSIYPb1HF0AA=; b=i2ZONahaHSB7e09W3WlUKQj599xSPTooNk1le5WrMNeuoJy/0QInBpXWQW5jfILrnftpdh015b77mrg2B8qd2DVFjsFU0lAa+L4aVgDl2g9qt7DNSZGRdIU7l4IH98BceMkg846+hC1O1E3UjUbpPvXkI61AmHJY8k2e2Vyorh+PftHOJEANpmh8fvr8COFqPnlHh9t1EGYTgLY5kjd9fWgchRN3zjtgTdoqF5uUlv15dM2pkPz23/tGG7OjMVMOej4cp3ih7cPwv2vBkjMozMCrsy44230echIB4SWUV4JvYB2uFwz4/MsrEzZW9dUZAUg8G5rn2PXF1lFIa8hGRg== To: "devel@lists.libvirt.org" Subject: [PATCH] qemu: validate: treat only real backing chains as NVRAM backingStore Thread-Topic: [PATCH] qemu: validate: treat only real backing chains as NVRAM backingStore Thread-Index: AQHc6gJLkTYGJrsrb0qEL1DBxPIwWg== Date: Fri, 22 May 2026 15:49:27 +0000 Message-ID: Accept-Language: en-US, ru-RU Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AS8PR08MB10313:EE_|DU0PR08MB8188:EE_ x-ms-office365-filtering-correlation-id: c9be1782-46c7-40b5-03e6-08deb819b4b7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700021|18002099003|56012099003|8096899003; x-microsoft-antispam-message-info: 12ASgqh4uMnm4UE9gA9kj9Q9pooj19MpZ6teKv+evBmoRlstr7x4C4zk85YuNcS2jsqVhkHnjXhAS0kr7fzTwEWIf8d7gyV4kVJBnTUwLhvygHbX37r1qA1leFMTqIeSu+1PI8L04lInlwYnjrmdBYCydB4FDVomm4hFMHNXRaZFIJR6qkxAIzg1JiwwRzfbU5JpJIHijfcQSe2uFCaCp2S1r0Tsom0XFfqHBlzU7DIleyJsQMallnPWS35jKlJ/aJ6WAvyYvzpqHkwKyyGSXyKagiGEKHxqGDk8HDXTQA6TIw8hfHIU4hrpPRUyqp5i2OI3WFWNf5/SBf0pfjDKCdW3NkoanQB59VjtsHhhETwiUi9BjrFMS5ao988v7GNH0i/nqzkEO80H2WR3AgyqkflLycVxdjflVe+dyN5uNWeZKyfSeci6kNDrrjn5sQTQ1gNlwusuFDSBx8mly82C4euSRsddjkSlF9iHFLcBEW95NWtNfQBc4eTJ9sjV1xrQan2/h5mx9MUQetB2kzcQ2rWg2EMiI9CHn7tLJLOwTPnkbN+PasMgcnTaq1CB5XyAyirgCs0iGDNJNkG3pUd1z6mWI71vFP9NM7O5y5oVo2Np9o71GDfrjWM6vDd4car1lI+vaw51a4xoV36lkOwQ6EUYqvmEFd1pPQWiHOl+nzwMBCT2GmeooqB/9NWS5dOr1oLz+Wkqy7q5p2TgJgRVTH0dzHshq9xtgel/O1USuJqWmeh5i9hPk2v+/BkRqk2X x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB10313.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021)(18002099003)(56012099003)(8096899003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?crTIvGVOkzs5tZSIaI6812SCO4CUFaNhVVxj4W3skFW9iBCJk9cJMmL6kX?= =?iso-8859-1?Q?wof0PbgJ6ySlcu0TpC44DPgkO+hDNo7Hq4piCgJKUHCKdtsk2BKc8+wXaG?= =?iso-8859-1?Q?wCicJYtoQ5VVXlt56ebzxXnCQA0ArYBdnmQonR/quxeP1uHwgQsoBfP/ZD?= =?iso-8859-1?Q?qTQYAWeTKPfgQGtBau7dcSqXItJWJiMm/u1ZWEoiHxXaqUA7rqpet6z8Xm?= =?iso-8859-1?Q?lK2myVxu/3Jp/VQ/fQTYt1fkgkdMfEA7LgIklxDXYmS3zWjXvaexw2n+4O?= =?iso-8859-1?Q?q77yNvUghl8z/6/tvt2cs4tADN5l4X+qTnyCVClYTX5Go87J0mzNkV4K8O?= =?iso-8859-1?Q?SOZ/Ywt6CT9zENWh7fVSF21XMiQ22E4Mw7AMo6ja6hfJUGq7mncsHdTenG?= =?iso-8859-1?Q?5lKh/0m07bLzT8947Rc0o8Lq4yLJ/hCKJc9MviloIG52YKpBZdtM+YbTLI?= =?iso-8859-1?Q?tqixDhGYArMi+RXOSC7iVPwqSKihGmLd2NHt2XXY+1nUjQr9ljL27YeoGa?= =?iso-8859-1?Q?yjxjg84WbkK77Kte4i8E/KGvaL5c+GbUITfRYp/jRlgu8K2J1eIUjcJ+UJ?= =?iso-8859-1?Q?ASg5tWLEDw0fz30Ac+hBUX9P4/30hfDiIByWc8lv374W2385CLU/+xyf4C?= =?iso-8859-1?Q?DLu8+wEFEV82oLBDk0hxGedfc4bf9B5nVImaNfvfMt1j/bO93Wmer6Lk8g?= =?iso-8859-1?Q?4cwiZ6/KlSZ+Sm+CX4IdbN6S7KIc2Q0DnaR9H73QF1IFaWFVUyKV2yptnn?= =?iso-8859-1?Q?7cQqZpEbjZYQ6Fp4jbM4PfnJsBoqXn8L4HZpVlJridxE37ppWpvh5Hk7ql?= =?iso-8859-1?Q?fWxK4VRPZc/nILryoVZ5xmauDST8sNEBXNzrUNgLWLxVlSpFbXnPRE0dEh?= =?iso-8859-1?Q?Vb3FkIVUJJ5b7SZrTuNfCO7nVgZLwW3F6R6ykhROxFhrt2/DNllcUJ424m?= =?iso-8859-1?Q?ZZ0ZouagAiaBTVKzFXfkeLiBtbux/bkFVnnfEBCsxfXfhrk/Tkim5Jos/Y?= =?iso-8859-1?Q?k+2bsH/wojkpH4/6suROg7FVJN7k7ncGEpCY0ZZa4G+HOAsSxLUXAGHnj3?= =?iso-8859-1?Q?mXY8gZAxmkMODrFo3gwW9HQTNkj119ikvJKNjDV/axZoD66NwKDOZOy/Bj?= =?iso-8859-1?Q?PUjuSbhTeInpJ3DMvBkbYpmknaUfPAi75lIBW3Omryio4H5e7WpiDZZdFh?= =?iso-8859-1?Q?9syFjwrbJm0NvGl44NG0hbdoqhLEhZlwnDVCvMrfW1RvYBE2w83pcj3Ijg?= =?iso-8859-1?Q?KduVegU8S8ykRpil8HgS4ZPBYIRahPbZ4XkhBCv1WDTjbQ4Ihsqm5/QDUb?= =?iso-8859-1?Q?YBdDrksKQU2P9m2lxJ65H7XvYjnvs7wkHCdsybfN2Eq5LumtWpQOcVnMDj?= =?iso-8859-1?Q?Bn0bHDuKKH4nHr9KN+3nmBKiwymq49vOXqe5IpNl83E9Osiqw+F7zxNeGB?= =?iso-8859-1?Q?uc1wi1e8J3TbNU/S3vSXxSrbGqAla9iqNrvez3BSlLlx9rXZ0qA1QsEH3j?= =?iso-8859-1?Q?65jOr1Oz99pACnUMTQap1tfUsxzse2R5EgCttV/Vg5NIyMKdBglCsZKFKs?= =?iso-8859-1?Q?wUG/7nNhCig7seqXWRPO2gFoYtNRdd0NdLbyZ+jnlou9Uw1GqBxH/i9cZN?= =?iso-8859-1?Q?0b98B8K/G8QLl8UR5eLcpY4P4OKsDiWpsTouUT2r0lngVbVkKBW0NDy4uH?= =?iso-8859-1?Q?nwIHPFbeCQkrUspZgnU3J/IQo2dFuD3ifKOtj6STBncr7JbB57H/tFrgVF?= =?iso-8859-1?Q?nHZARg9rqtu7nG46CSsog0DQjmjGx9IoFphnttlFyC9IoFaqGrxsrmj8pP?= =?iso-8859-1?Q?Kj6xO07ZfQ=3D=3D?= Content-Type: multipart/alternative; boundary="_000_AS8PR08MB103132E4EB8766D1E173157848D0F2AS8PR08MB10313eu_" MIME-Version: 1.0 X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AS8PR08MB10313.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c9be1782-46c7-40b5-03e6-08deb819b4b7 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 May 2026 15:49:27.8541 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: coKKggzCQhIxj+h5C+JAaoRrFstPkmOtBEN4M5DG0kdoi6GiTHVkmAZ7AjYJR7hk09y+Ol8cNORIFBUc07FfO8tONqnzdazibRvb/kfaY8M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8188 Message-ID-Hash: DNJ3I4YKJNKA37LT5T5XDI3ONHQWT4TZ X-Message-ID-Hash: DNJ3I4YKJNKA37LT5T5XDI3ONHQWT4TZ X-MailFrom: efim.shevrin@virtuozzo.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Den Lunev X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Efim Shevrin via Devel Reply-To: Efim Shevrin X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1779465049655154100 --_000_AS8PR08MB103132E4EB8766D1E173157848D0F2AS8PR08MB10313eu_ Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" qemuDomainInitializePflashStorageSource() always attaches a non-NULL src->backingStore used as an empty virStorageSource chain terminator (type VIR_STORAGE_TYPE_NONE). qemuValidateDomainDefNvram() incorrectly interpreted every non-NULL backingStore as a genuine backing overlay and reported VIR_ERR_CONFIG_UNSUPPORTED, so legitimate UEFI/NVRAM setups were rejected. Check virStorageSourceIsBacking(src->backingStore) instead of a plain pointer test so only a real backing node is rejected. Regression introduced in commit bca731d0f562f0842f56ec2206fdbd721a468f5b. Signed-off-by: Fima Shevrin Reviewed-by: Peter Krempa --- src/qemu/qemu_validate.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 642244b62e..d8347d1964 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -740,7 +740,14 @@ qemuValidateDomainDefNvram(const virDomainDef *def, return -1; } - if (src->backingStore) { + /* qemuDomainInitializePflashStorageSource() always sets + * src->backingStore to a fresh empty virStorageSource as a + * chain terminator, so a plain `if (src->backingStore)` check + * is always true and rejects every UEFI/NVRAM domain after + * upstream commit that introduced the terminator. Use + * virStorageSourceIsBacking() (type !=3D VIR_STORAGE_TYPE_NONE) + * so we only reject genuine backing chains. */ + if (virStorageSourceIsBacking(src->backingStore)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("backingStore is not supported with NVRAM")); return -1; -- 2.47.1 --_000_AS8PR08MB103132E4EB8766D1E173157848D0F2AS8PR08MB10313eu_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
qemuDomainInitializePflashStorageSource() always attaches a non-NULL
src->backingStore used as an empty virStorageSource chain terminator
(type VIR_STORAGE_TYPE_NONE). qemuValidateDomainDefNvram() incorrectly
interpreted every non-NULL backingStore as a genuine backing overlay and
reported VIR_ERR_CONFIG_UNSUPPORTED, so legitimate UEFI/NVRAM setups were
rejected.
Check virStorageSourceIsBacking(src->backingStore) instead of a plain
pointer test so only a real backing node is rejected.

Regression introduced in commit bca731d0f562f0842f56ec2206fdbd721a468f5b.

Signed-off-by: Fima Shevrin <efim.shevrin@virtuozzo.com>
---
 src/qemu/qemu_validate.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 642244b62e..d8347d1964 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -740,7 +740,14 @@ qemuValidateDomainDefNvram(const virDomainDef *def,
         return -1;
     }
 
-    if (src->backingStore) {
+    /* qemuDomainInitializePflashStorageSource() always sets
+     * src->backingStore to a fresh empty virStorageSource as= a
+     * chain terminator, so a plain `if (src->backingStore)` = check
+     * is always true and rejects every UEFI/NVRAM domain after<= /div>
+     * upstream commit that introduced the terminator. Use
+     * virStorageSourceIsBacking() (type !=3D VIR_STORAGE_TYPE_N= ONE)
+     * so we only reject genuine backing chains. */
+    if (virStorageSourceIsBacking(src->backingStore)) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED= , "%s",
                     = ;    _("backingStore is not supported with NVRAM"));
         return -1;
-- 
2.47.1
--_000_AS8PR08MB103132E4EB8766D1E173157848D0F2AS8PR08MB10313eu_--