]> git.proxmox.com Git - mirror_edk2.git/blobdiff - DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c
DynamicTablesPkg: Add frame number validation to GTDT generator
[mirror_edk2.git] / DynamicTablesPkg / Library / Acpi / Arm / AcpiGtdtLibArm / GtdtGenerator.c
index 70f52507bc7f12a776f76271b3f378bc62e717ba..543e6f442f2ab93bc7c9cd5e563d305c0f400060 100644 (file)
@@ -2,13 +2,7 @@
   GTDT Table Generator\r
 \r
   Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.\r
-  This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
   @par Reference(s):\r
   - ACPI 6.2 Specification - Errata A, September 2017\r
@@ -224,6 +218,15 @@ AddGTBlockTimerFrames (
       GtBlockFrame\r
       ));\r
 \r
+    if (GTBlockTimerFrameList->FrameNumber >= 8) {\r
+      DEBUG ((\r
+        DEBUG_ERROR,\r
+        "ERROR: GTDT: Frame number %d is not in the range 0-7\n",\r
+        GTBlockTimerFrameList->FrameNumber\r
+      ));\r
+      return EFI_INVALID_PARAMETER;\r
+    }\r
+\r
     GtBlockFrame->GTFrameNumber = GTBlockTimerFrameList->FrameNumber;\r
     GtBlockFrame->Reserved[0] = EFI_ACPI_RESERVED_BYTE;\r
     GtBlockFrame->Reserved[1] = EFI_ACPI_RESERVED_BYTE;\r
@@ -518,7 +521,7 @@ BuildGtdtTable (
              CfgMgrProtocol,\r
              This,\r
              &Gtdt->Header,\r
-             AcpiTableInfo->AcpiTableRevision,\r
+             AcpiTableInfo,\r
              TableSize\r
              );\r
   if (EFI_ERROR (Status)) {\r