MdeModulePkg SmmLockBox: Return updated Length for EFI_BUFFER_TOO_SMALL

The updated Length value should be returned
for EFI_BUFFER_TOO_SMALL case.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
(cherry picked from commit f068aa038d)
This commit is contained in:
Star Zeng
2018-02-24 16:02:07 +08:00
parent cf7481e2f6
commit 04da8cbd1f

View File

@ -9,7 +9,7 @@
SmmLockBoxHandler(), SmmLockBoxRestore(), SmmLockBoxUpdate(), SmmLockBoxSave() SmmLockBoxHandler(), SmmLockBoxRestore(), SmmLockBoxUpdate(), SmmLockBoxSave()
will receive untrusted input and do basic validation. will receive untrusted input and do basic validation.
Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR> Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions are licensed and made available under the terms and conditions
@ -217,6 +217,9 @@ SmmLockBoxRestore (
(VOID *)(UINTN)TempLockBoxParameterRestore.Buffer, (VOID *)(UINTN)TempLockBoxParameterRestore.Buffer,
(UINTN *)&TempLockBoxParameterRestore.Length (UINTN *)&TempLockBoxParameterRestore.Length
); );
if (Status == EFI_BUFFER_TOO_SMALL) {
LockBoxParameterRestore->Length = TempLockBoxParameterRestore.Length;
}
} }
LockBoxParameterRestore->Header.ReturnStatus = (UINT64)Status; LockBoxParameterRestore->Header.ReturnStatus = (UINT64)Status;
return ; return ;