From nobody Mon Feb 9 03:45:42 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1645550680; cv=none; d=zohomail.com; s=zohoarc; b=ikXdwe0qUXEN6sdGlTRsUWK5VZj50UN9KcBP4lUs2u2cv0fkIQPXnZ914+jrjYpYd7G7DzbPWJAaysq9FWw+/ucXAeCcwWxD5ojMshSc4UDBNn8XSRvL3EE8b7tbqoBiDPtvPRMJahODBELuqmzNSBO1R4z3rjnH3znNAd+XzXA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1645550680; h=Content-Type:Content-Transfer-Encoding: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=4cjdLJwTFacZZ7O8+pz+BgEWyT1gaxeJQXHn24su17o=; b=eIZ4SmfmRBjMhsWp9DubUig68JwRereJhR5x7tT+uy9g3PPfKBJlROZW9bmzunnlA+oo1FVuEQ0+WcoouOKLMYarWN9sJhiMIR9+61XnSQSMlWmYJsjrrNEF5AmZLqjgNLWBrHNcl0P6GWp7OyQLF7ZLR2hckDYTivB242Isl3s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1645550680464815.0448485479094; Tue, 22 Feb 2022 09:24:40 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-633-zt3mAyNKNfuRuY_Bmyaqvw-1; Tue, 22 Feb 2022 12:24:36 -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 C75396D4EC; Tue, 22 Feb 2022 17:24:30 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 604E087531; Tue, 22 Feb 2022 17:24:30 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 1838F1809CB2; Tue, 22 Feb 2022 17:24:30 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 21MHNw3T019484 for ; Tue, 22 Feb 2022 12:23:58 -0500 Received: by smtp.corp.redhat.com (Postfix) id 1F06F108116A; Tue, 22 Feb 2022 17:23:58 +0000 (UTC) Received: from localhost.localdomain.com (unknown [10.39.195.93]) by smtp.corp.redhat.com (Postfix) with ESMTP id EED591077D4B; Tue, 22 Feb 2022 17:23:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1645550679; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=4cjdLJwTFacZZ7O8+pz+BgEWyT1gaxeJQXHn24su17o=; b=ZdRVepYay4VE5hR363J+m+fvQ0pELAY3UGptx6wXatw30cemzenJTB5Qv12DElGsvJYx8D vdqe7vXyxCOMbQqzhbQeQFdVhofStOStTfMmi4ZbCtVsPwOzdK4Xy9s75mtzx9Mz6yS7Cp q9DkixWn8pnWr4/oxHG3bxBSWaLfJms= X-MC-Unique: zt3mAyNKNfuRuY_Bmyaqvw-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Subject: [libvirt PATCH v2 2/5] tests: don't permit NVRAM path when using firmware auto-select Date: Tue, 22 Feb 2022 17:23:47 +0000 Message-Id: <20220222172350.2053536-3-berrange@redhat.com> In-Reply-To: <20220222172350.2053536-1-berrange@redhat.com> References: <20220222172350.2053536-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1645550681443100003 When using we still parse the path, but completely ignore it, replacing any user provided content with a custom generated path. This makes sense since when undefining the guest, the code to cleanup NVRAM also uses the same generated path. Instead of silently ignoring user config, we should report an explicit error message. This shows that some of our tests had the bogus config scenario present. Signed-off-by: Daniel P. Berrang=C3=A9 --- src/conf/domain_validate.c | 8 +++ tests/qemuxml2argvdata/os-firmware-bios.xml | 1 - ...mware-efi-bad-nvram-path.x86_64-latest.err | 1 + .../os-firmware-efi-bad-nvram-path.xml | 68 +++++++++++++++++++ .../os-firmware-efi-secboot.xml | 1 - tests/qemuxml2argvdata/os-firmware-efi.xml | 1 - tests/qemuxml2argvtest.c | 1 + .../os-firmware-bios.x86_64-latest.xml | 1 - .../os-firmware-efi-secboot.x86_64-latest.xml | 1 - .../os-firmware-efi.x86_64-latest.xml | 1 - 10 files changed, 78 insertions(+), 6 deletions(-) create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-path.x= 86_64-latest.err create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-path.x= ml diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index f0b8aa2655..22bfb3b59d 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -1504,6 +1504,14 @@ virDomainDefOSValidate(const virDomainDef *def, return -1; } =20 + if (def->os.firmware !=3D VIR_DOMAIN_OS_DEF_FIRMWARE_NONE) { + if (def->os.loader->nvram) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("NVRAM path is not permitted with firmware at= tribute")); + return -1; + } + } + return 0; } =20 diff --git a/tests/qemuxml2argvdata/os-firmware-bios.xml b/tests/qemuxml2ar= gvdata/os-firmware-bios.xml index 63886666dd..d89fcb6c58 100644 --- a/tests/qemuxml2argvdata/os-firmware-bios.xml +++ b/tests/qemuxml2argvdata/os-firmware-bios.xml @@ -7,7 +7,6 @@ hvm - /var/lib/libvirt/qemu/nvram/fedora_VARS.fd diff --git a/tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-path.x86_64-l= atest.err b/tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-path.x86_64-la= test.err new file mode 100644 index 0000000000..2ba8135ad4 --- /dev/null +++ b/tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-path.x86_64-latest.e= rr @@ -0,0 +1 @@ +XML error: NVRAM path is not permitted with firmware attribute diff --git a/tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-path.xml b/te= sts/qemuxml2argvdata/os-firmware-efi-bad-nvram-path.xml new file mode 100644 index 0000000000..a4afdb6d0b --- /dev/null +++ b/tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-path.xml @@ -0,0 +1,68 @@ + + fedora + 63840878-0deb-4095-97e6-fc444d9bc9fa + 8192 + 8192 + 1 + + hvm + + /some/path + + + + + + + + + + destroy + restart + restart + + + + + + /usr/bin/qemu-system-x86_64 + +
+ + + +
+ + + +
+ + + +
+ + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + diff --git a/tests/qemuxml2argvdata/os-firmware-efi-secboot.xml b/tests/qem= uxml2argvdata/os-firmware-efi-secboot.xml index a285e06334..51faac54bf 100644 --- a/tests/qemuxml2argvdata/os-firmware-efi-secboot.xml +++ b/tests/qemuxml2argvdata/os-firmware-efi-secboot.xml @@ -7,7 +7,6 @@ hvm - /var/lib/libvirt/qemu/nvram/fedora_VARS.fd diff --git a/tests/qemuxml2argvdata/os-firmware-efi.xml b/tests/qemuxml2arg= vdata/os-firmware-efi.xml index 46a7b1b780..cb21437ed8 100644 --- a/tests/qemuxml2argvdata/os-firmware-efi.xml +++ b/tests/qemuxml2argvdata/os-firmware-efi.xml @@ -7,7 +7,6 @@ hvm - /var/lib/libvirt/qemu/nvram/fedora_VARS.fd diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index d2a53d35a8..693566f2d4 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -3406,6 +3406,7 @@ mymain(void) =20 DO_TEST_CAPS_LATEST("os-firmware-bios"); DO_TEST_CAPS_LATEST("os-firmware-efi"); + DO_TEST_CAPS_LATEST_PARSE_ERROR("os-firmware-efi-bad-nvram-path"); DO_TEST_CAPS_LATEST("os-firmware-efi-secboot"); DO_TEST_CAPS_LATEST("os-firmware-efi-no-enrolled-keys"); DO_TEST_CAPS_ARCH_LATEST("aarch64-os-firmware-efi", "aarch64"); diff --git a/tests/qemuxml2xmloutdata/os-firmware-bios.x86_64-latest.xml b/= tests/qemuxml2xmloutdata/os-firmware-bios.x86_64-latest.xml index df6f61421a..a278ff059c 100644 --- a/tests/qemuxml2xmloutdata/os-firmware-bios.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/os-firmware-bios.x86_64-latest.xml @@ -7,7 +7,6 @@ hvm - /var/lib/libvirt/qemu/nvram/fedora_VARS.fd diff --git a/tests/qemuxml2xmloutdata/os-firmware-efi-secboot.x86_64-latest= .xml b/tests/qemuxml2xmloutdata/os-firmware-efi-secboot.x86_64-latest.xml index c383546cc6..e7224896aa 100644 --- a/tests/qemuxml2xmloutdata/os-firmware-efi-secboot.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/os-firmware-efi-secboot.x86_64-latest.xml @@ -7,7 +7,6 @@ hvm - /var/lib/libvirt/qemu/nvram/fedora_VARS.fd diff --git a/tests/qemuxml2xmloutdata/os-firmware-efi.x86_64-latest.xml b/t= ests/qemuxml2xmloutdata/os-firmware-efi.x86_64-latest.xml index 04d57860e7..73f4b9a033 100644 --- a/tests/qemuxml2xmloutdata/os-firmware-efi.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/os-firmware-efi.x86_64-latest.xml @@ -7,7 +7,6 @@ hvm - /var/lib/libvirt/qemu/nvram/fedora_VARS.fd --=20 2.34.1