/** @file \r
This module implements TCG EFI Protocol.\r
- \r
+ \r
+Caution: This module requires additional review when modified.\r
+This driver will have external input - TcgDxePassThroughToTpm\r
+This external input must be validated carefully to avoid security issue like\r
+buffer overflow, integer overflow.\r
+\r
+TcgDxePassThroughToTpm() will receive untrusted input and do basic validation.\r
+\r
Copyright (c) 2005 - 2012, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
{\r
TCG_DXE_DATA *TcgData;\r
\r
+ if (TCGLogData == NULL){\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
TcgData = TCG_DXE_DATA_FROM_THIS (This);\r
\r
if (TcgData->BsCap.TPMDeactivatedFlag) {\r
{\r
TCG_DXE_DATA *TcgData;\r
\r
+ if (TpmInputParameterBlock == NULL || \r
+ TpmOutputParameterBlock == NULL || \r
+ TpmInputParameterBlockSize == 0 ||\r
+ TpmOutputParameterBlockSize == 0) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
TcgData = TCG_DXE_DATA_FROM_THIS (This);\r
\r
return TisPcExecute (\r
{\r
EFI_STATUS Status;\r
\r
- if (HashDataLen > 0) {\r
+ if (HashData == NULL && HashDataLen > 0) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
+ if (HashDataLen > 0 || HashData != NULL) {\r
Status = TpmCommHashAll (\r
HashData,\r
(UINTN) HashDataLen,\r
{\r
TCG_DXE_DATA *TcgData;\r
\r
+ if (TCGLogData == NULL || EventLogLastEntry == NULL){\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
TcgData = TCG_DXE_DATA_FROM_THIS (This);\r
\r
if (TcgData->BsCap.TPMDeactivatedFlag) {\r