summaryrefslogtreecommitdiff
path: root/src/soc/amd
diff options
context:
space:
mode:
authorFelix Held <felix-coreboot@felixheld.de>2021-05-04 20:18:41 +0200
committerFelix Held <felix-coreboot@felixheld.de>2021-05-05 18:35:29 +0000
commit75a2355a1945d3028a8aa77e8f55eaf5ddfb1214 (patch)
tree8c748077e36a6cff60b7e05e20d7250c116e6c11 /src/soc/amd
parent245adcab13ad47af7419c4ff84c8196a26c025c7 (diff)
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 Reviewed-on: https://review.coreboot.org/c/coreboot/+/52897 Reviewed-by: Jason Glenesk <jason.glenesk@amd.corp-partner.google.com> Reviewed-by: Raul Rangel <rrangel@chromium.org> Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/amd')
-rw-r--r--src/soc/amd/common/fsp/fsp-acpi.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/soc/amd/common/fsp/fsp-acpi.c b/src/soc/amd/common/fsp/fsp-acpi.c
index b530688c03..f92d571066 100644
--- a/src/soc/amd/common/fsp/fsp-acpi.c
+++ b/src/soc/amd/common/fsp/fsp-acpi.c
@@ -28,6 +28,12 @@ uintptr_t add_agesa_fsp_acpi_table(guid_t guid, const char *name, acpi_rsdp_t *r
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);