aboutsummaryrefslogtreecommitdiff
path: root/src/acpi
diff options
context:
space:
mode:
authorMatt DeVillier <matt.devillier@gmail.com>2023-11-09 15:04:58 -0600
committerFelix Held <felix-coreboot@felixheld.de>2023-11-11 15:12:21 +0000
commitd4d40c64e102d99acf63b673af4c7e41f10b4de9 (patch)
tree1166a1c25827c34584efa826453defe3cef31fd8 /src/acpi
parent238ff1e9c71d58f1f691afaec4b64032d92f2ea8 (diff)
acpi/acpigen: Fix buffer length in acpigen_write_name_unicode()
The buffer length is in bytes, and since we are converting from ASCII to UTF-16, the value written needs to be 2x the string length + null terminator. TEST=build/boot google skyrim (frostflow), dump acpi and check bytecode for correct buffer length preceding unicode strings. Change-Id: Id322e3ff457ca1c92c55125224ca6cfab8762a84 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/78977 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de> Reviewed-by: Paul Menzel <paulepanter@mailbox.org> Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Diffstat (limited to 'src/acpi')
-rw-r--r--src/acpi/acpigen.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/acpi/acpigen.c b/src/acpi/acpigen.c
index ea3ef200a3..b2db19d249 100644
--- a/src/acpi/acpigen.c
+++ b/src/acpi/acpigen.c
@@ -185,7 +185,7 @@ void acpigen_write_name_unicode(const char *name, const char *string)
acpigen_write_name(name);
acpigen_emit_byte(BUFFER_OP);
acpigen_write_len_f();
- acpigen_write_integer(len);
+ acpigen_write_integer(2 * len);
for (size_t i = 0; i < len; i++) {
const signed char c = string[i];
/* Simple ASCII to UTF-16 conversion, replace non ASCII characters */