From: Krzysztof Koch Date: Wed, 10 Apr 2019 10:28:55 +0000 (+0100) Subject: DynamicTablesPkg: Add frame number validation to GTDT generator X-Git-Tag: edk2-stable201908~434 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=75bf10a68914a50b1d5c57f63a8561fa52dc0973 DynamicTablesPkg: Add frame number validation to GTDT generator Added code to check if the Generic Timer Block Structure's frame number provided by the platform repository is within the allowed range (0-7). References: - ACPI 6.2 Errata A, Table 5-122, September 2017 Signed-off-by: Krzysztof Koch Reviewed-by: Alexei Fedorov Reviewed-by: Sami Mujawar --- diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c index 8d9ddcf924..543e6f442f 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c @@ -218,6 +218,15 @@ AddGTBlockTimerFrames ( GtBlockFrame )); + if (GTBlockTimerFrameList->FrameNumber >= 8) { + DEBUG (( + DEBUG_ERROR, + "ERROR: GTDT: Frame number %d is not in the range 0-7\n", + GTBlockTimerFrameList->FrameNumber + )); + return EFI_INVALID_PARAMETER; + } + GtBlockFrame->GTFrameNumber = GTBlockTimerFrameList->FrameNumber; GtBlockFrame->Reserved[0] = EFI_ACPI_RESERVED_BYTE; GtBlockFrame->Reserved[1] = EFI_ACPI_RESERVED_BYTE;