All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: qemu-devel@nongnu.org
Cc: Ani Sinha <ani@anisinha.ca>,
	Peter Maydell <peter.maydell@linaro.org>,
	qemu-stable@nongnu.org,
	"Dmitry V . Orekhov" <dima.orekhov@gmail.com>,
	Igor Mammedov <imammedo@redhat.com>
Subject: [PULL v2 05/24] acpi: fix OEM ID/OEM Table ID padding
Date: Sun, 6 Feb 2022 04:37:57 -0500	[thread overview]
Message-ID: <20220206093702.1282676-6-mst@redhat.com> (raw)
In-Reply-To: <20220206093702.1282676-1-mst@redhat.com>

From: Igor Mammedov <imammedo@redhat.com>

Commit [2] broke original '\0' padding of OEM ID and OEM Table ID
fields in headers of ACPI tables. While it doesn't have impact on
default values since QEMU uses 6 and 8 characters long values
respectively, it broke usecase where IDs are provided on QEMU CLI.
It shouldn't affect guest (but may cause licensing verification
issues in guest OS).
One of the broken usecases is user supplied SLIC table with IDs
shorter than max possible length, where [2] mangles IDs with extra
spaces in RSDT and FADT tables whereas guest OS expects those to
mirror the respective values of the used SLIC table.

Fix it by replacing whitespace padding with '\0' padding in
accordance with [1] and expectations of guest OS

1) ACPI spec, v2.0b
       17.2 AML Grammar Definition
       ...
       //OEM ID of up to 6 characters. If the OEM ID is
       //shorter than 6 characters, it can be terminated
       //with a NULL character.

2)
Fixes: 602b458201 ("acpi: Permit OEM ID and OEM table ID fields to be changed")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/707
Reported-by: Dmitry V. Orekhov <dima.orekhov@gmail.com>
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Cc: qemu-stable@nongnu.org
Message-Id: <20220112130332.1648664-4-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Ani Sinha <ani@anisinha.ca>
Tested-by: Dmitry V. Orekhov dima.orekhov@gmail.com
---
 hw/acpi/aml-build.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c
index bb2cad63b5..8966e16320 100644
--- a/hw/acpi/aml-build.c
+++ b/hw/acpi/aml-build.c
@@ -1724,9 +1724,9 @@ void acpi_table_begin(AcpiTable *desc, GArray *array)
     build_append_int_noprefix(array, 0, 4); /* Length */
     build_append_int_noprefix(array, desc->rev, 1); /* Revision */
     build_append_int_noprefix(array, 0, 1); /* Checksum */
-    build_append_padded_str(array, desc->oem_id, 6, ' '); /* OEMID */
+    build_append_padded_str(array, desc->oem_id, 6, '\0'); /* OEMID */
     /* OEM Table ID */
-    build_append_padded_str(array, desc->oem_table_id, 8, ' ');
+    build_append_padded_str(array, desc->oem_table_id, 8, '\0');
     build_append_int_noprefix(array, 1, 4); /* OEM Revision */
     g_array_append_vals(array, ACPI_BUILD_APPNAME8, 4); /* Creator ID */
     build_append_int_noprefix(array, 1, 4); /* Creator Revision */
-- 
MST



  parent reply	other threads:[~2022-02-06  9:54 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-06  9:37 [PULL v2 00/24] virtio,pc: features, cleanups, fixes Michael S. Tsirkin
2022-02-06  9:37 ` [PULL v2 01/24] cpuid: use unsigned for max cpuid Michael S. Tsirkin
2022-02-06  9:37 ` [PULL v2 02/24] hw/i386: Add the possibility to disable the 'isapc' machine Michael S. Tsirkin
2022-02-06  9:37 ` [PULL v2 03/24] tests: acpi: manually pad OEM_ID/OEM_TABLE_ID for test_oem_fields() test Michael S. Tsirkin
2022-02-06  9:37 ` [PULL v2 04/24] tests: acpi: whitelist nvdimm's SSDT and FACP.slic expected blobs Michael S. Tsirkin
2022-02-06  9:37 ` Michael S. Tsirkin [this message]
2022-02-06  9:38 ` [PULL v2 06/24] tests: acpi: update " Michael S. Tsirkin
2022-02-06  9:38 ` [PULL v2 07/24] tests: acpi: test short OEM_ID/OEM_TABLE_ID values in test_oem_fields() Michael S. Tsirkin
2022-02-06  9:38 ` [PULL v2 08/24] libvhost-user: Add vu_rem_mem_reg input validation Michael S. Tsirkin
2022-02-06  9:38 ` [PULL v2 09/24] libvhost-user: Add vu_add_mem_reg " Michael S. Tsirkin
2022-02-06  9:38 ` [PULL v2 10/24] libvhost-user: Simplify VHOST_USER_REM_MEM_REG Michael S. Tsirkin
2022-02-06  9:38 ` [PULL v2 11/24] libvhost-user: fix VHOST_USER_REM_MEM_REG not closing the fd Michael S. Tsirkin
2022-02-06  9:38 ` [PULL v2 12/24] libvhost-user: prevent over-running max RAM slots Michael S. Tsirkin
2022-02-06  9:38 ` [PULL v2 13/24] libvhost-user: handle removal of identical regions Michael S. Tsirkin
2022-02-06  9:38 ` [PULL v2 14/24] libvhost-user: Map shared RAM with MAP_NORESERVE to support virtio-mem with hugetlb Michael S. Tsirkin
2022-02-06  9:38 ` [PULL v2 15/24] ACPI ERST: bios-tables-test.c steps 1 and 2 Michael S. Tsirkin
2022-02-06  9:38 ` [PULL v2 16/24] ACPI ERST: PCI device_id for ERST Michael S. Tsirkin
2022-02-06  9:38 ` [PULL v2 17/24] ACPI ERST: header file " Michael S. Tsirkin
2022-02-06  9:38 ` [PULL v2 18/24] ACPI ERST: support for ACPI ERST feature Michael S. Tsirkin
2022-05-12 16:29   ` Peter Maydell
2022-05-13  7:34     ` Ani Sinha
2022-02-06  9:38 ` [PULL v2 19/24] ACPI ERST: build the ACPI ERST table Michael S. Tsirkin
2022-02-06  9:38 ` [PULL v2 20/24] ACPI ERST: create ACPI ERST table for pc/x86 machines Michael S. Tsirkin
2022-02-06  9:38 ` [PULL v2 21/24] ACPI ERST: qtest for ERST Michael S. Tsirkin
2022-02-06  9:38 ` [PULL v2 22/24] ACPI ERST: bios-tables-test testcase Michael S. Tsirkin
2022-02-06  9:38 ` [PULL v2 23/24] ACPI ERST: step 6 of bios-tables-test.c Michael S. Tsirkin
2022-02-06  9:38 ` [PULL v2 24/24] util/oslib-posix: Fix missing unlock in the error path of os_mem_prealloc() Michael S. Tsirkin
2022-02-06 18:02 ` [PULL v2 00/24] virtio,pc: features, cleanups, fixes Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220206093702.1282676-6-mst@redhat.com \
    --to=mst@redhat.com \
    --cc=ani@anisinha.ca \
    --cc=dima.orekhov@gmail.com \
    --cc=imammedo@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-stable@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.