/** @file\r
LockBox SMM driver.\r
- \r
+\r
Caution: This module requires additional review when modified.\r
This driver will have external input - communicate buffer in SMM mode.\r
This external input must be validated carefully to avoid security issue like\r
buffer overflow, integer overflow.\r
- \r
+\r
SmmLockBoxHandler(), SmmLockBoxRestore(), SmmLockBoxUpdate(), SmmLockBoxSave()\r
will receive untrusted input and do basic validation.\r
\r
-Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>\r
\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions\r
Restore buffer and length are external input, so this function will validate\r
it is in SMRAM.\r
\r
- @param LockBoxParameterSave parameter of lock box save \r
+ @param LockBoxParameterSave parameter of lock box save\r
**/\r
VOID\r
SmmLockBoxSave (\r
Restore buffer and length are external input, so this function will validate\r
it is in SMRAM.\r
\r
- @param LockBoxParameterUpdate parameter of lock box update \r
+ @param LockBoxParameterUpdate parameter of lock box update\r
**/\r
VOID\r
SmmLockBoxUpdate (\r
Restore buffer and length are external input, so this function will validate\r
it is in SMRAM.\r
\r
- @param LockBoxParameterRestore parameter of lock box restore \r
+ @param LockBoxParameterRestore parameter of lock box restore\r
**/\r
VOID\r
SmmLockBoxRestore (\r
(VOID *)(UINTN)TempLockBoxParameterRestore.Buffer,\r
(UINTN *)&TempLockBoxParameterRestore.Length\r
);\r
+ if (Status == EFI_BUFFER_TOO_SMALL) {\r
+ LockBoxParameterRestore->Length = TempLockBoxParameterRestore.Length;\r
+ }\r
}\r
LockBoxParameterRestore->Header.ReturnStatus = (UINT64)Status;\r
return ;\r
EFI_SMM_LOCK_BOX_PARAMETER_HEADER *LockBoxParameterHeader;\r
UINTN TempCommBufferSize;\r
\r
- DEBUG ((EFI_D_ERROR, "SmmLockBox SmmLockBoxHandler Enter\n"));\r
+ DEBUG ((DEBUG_INFO, "SmmLockBox SmmLockBoxHandler Enter\n"));\r
\r
//\r
// If input is invalid, stop processing this SMI\r
\r
LockBoxParameterHeader->ReturnStatus = (UINT64)-1;\r
\r
- DEBUG ((EFI_D_ERROR, "SmmLockBox LockBoxParameterHeader - %x\n", (UINTN)LockBoxParameterHeader));\r
+ DEBUG ((DEBUG_INFO, "SmmLockBox LockBoxParameterHeader - %x\n", (UINTN)LockBoxParameterHeader));\r
\r
- DEBUG ((EFI_D_ERROR, "SmmLockBox Command - %x\n", (UINTN)LockBoxParameterHeader->Command));\r
+ DEBUG ((DEBUG_INFO, "SmmLockBox Command - %x\n", (UINTN)LockBoxParameterHeader->Command));\r
\r
switch (LockBoxParameterHeader->Command) {\r
case EFI_SMM_LOCK_BOX_COMMAND_SAVE:\r
\r
LockBoxParameterHeader->Command = (UINT32)-1;\r
\r
- DEBUG ((EFI_D_ERROR, "SmmLockBox SmmLockBoxHandler Exit\n"));\r
+ DEBUG ((DEBUG_INFO, "SmmLockBox SmmLockBoxHandler Exit\n"));\r
\r
return EFI_SUCCESS;\r
}\r
Smm Ready To Lock event notification handler.\r
\r
It sets a flag indicating that SMRAM has been locked.\r
- \r
+\r
@param[in] Protocol Points to the protocol's unique identifier.\r
@param[in] Interface Points to the interface instance.\r
@param[in] Handle The handle on which the interface was installed.\r
@param[in] ImageHandle Image handle of this driver.\r
@param[in] SystemTable A Pointer to the EFI System Table.\r
\r
- @retval EFI_SUCEESS \r
+ @retval EFI_SUCEESS\r
@return Others Some error occurs.\r
**/\r
EFI_STATUS\r