PARSER_PARAMS (GtBlockParser)\r
);\r
\r
+ // Check if the values used to control the parsing logic have been\r
+ // successfully read.\r
+ if ((GtBlockTimerCount == NULL) ||\r
+ (GtBlockTimerOffset == NULL)) {\r
+ IncrementErrorCount ();\r
+ Print (\r
+ L"ERROR: Insufficient GT Block Structure length. Length = %d.\n",\r
+ Length\r
+ );\r
+ return;\r
+ }\r
+\r
Offset = *GtBlockTimerOffset;\r
Index = 0;\r
\r
PARSER_PARAMS (GtdtParser)\r
);\r
\r
+ // Check if the values used to control the parsing logic have been\r
+ // successfully read.\r
+ if ((GtdtPlatformTimerCount == NULL) ||\r
+ (GtdtPlatformTimerOffset == NULL)) {\r
+ IncrementErrorCount ();\r
+ Print (\r
+ L"ERROR: Insufficient table length. AcpiTableLength = %d.\n",\r
+ AcpiTableLength\r
+ );\r
+ return;\r
+ }\r
+\r
TimerPtr = Ptr + *GtdtPlatformTimerOffset;\r
Offset = *GtdtPlatformTimerOffset;\r
Index = 0;\r
PARSER_PARAMS (GtPlatformTimerHeaderParser)\r
);\r
\r
+ // Check if the values used to control the parsing logic have been\r
+ // successfully read.\r
+ if ((PlatformTimerType == NULL) ||\r
+ (PlatformTimerLength == NULL)) {\r
+ IncrementErrorCount ();\r
+ Print (\r
+ L"ERROR: Insufficient remaining table buffer length to read the " \\r
+ L"Platform Timer Structure header. Length = %d.\n",\r
+ AcpiTableLength - Offset\r
+ );\r
+ return;\r
+ }\r
+\r
// Make sure the Platform Timer is inside the table.\r
if ((Offset + *PlatformTimerLength) > AcpiTableLength) {\r
IncrementErrorCount ();\r