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>
This commit is contained in:
parent
238ff1e9c7
commit
d4d40c64e1
@ -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 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user