Attention is currently required from: Jason Glenesk, Raul Rangel, Marshall Dawson. Felix Held has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/52897 )
Change subject: soc/amd/common/fsp/fsp-acpi: add check for maximum table size ......................................................................
soc/amd/common/fsp/fsp-acpi: add check for maximum table size
If the ACPI table size in the HOB data header is larger than the maximum HOB payload, don't add the table at all and print an error instead, since in this case the memcpy would read past the end of the HOB data structure.
Signed-off-by: Felix Held felix-coreboot@felixheld.de Change-Id: I965c01bd9ab66b14d6f77b6f23c28479ae6d6a50 --- M src/soc/amd/common/fsp/fsp-acpi.c 1 file changed, 6 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/97/52897/1
diff --git a/src/soc/amd/common/fsp/fsp-acpi.c b/src/soc/amd/common/fsp/fsp-acpi.c index b530688..f92d571 100644 --- a/src/soc/amd/common/fsp/fsp-acpi.c +++ b/src/soc/amd/common/fsp/fsp-acpi.c @@ -28,6 +28,12 @@ return current; }
+ if (data->table_size_in_bytes > sizeof(data->hob_payload)) { + printk(BIOS_ERR, "AGESA %s ACPI table size larger than maximum HOB payload " + "size.\n", name); + return current; + } + printk(BIOS_INFO, "ACPI: * %s (AGESA).\n", name);
memcpy(table, data->hob_payload, data->table_size_in_bytes);