]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg SmmLockBox: Return actual data length in SmmLockBoxRestore
authorStar Zeng <star.zeng@intel.com>
Mon, 13 Aug 2018 08:50:37 +0000 (16:50 +0800)
committerStar Zeng <star.zeng@intel.com>
Thu, 16 Aug 2018 01:02:14 +0000 (09:02 +0800)
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1082

Current code only returns actual data length in case of return status
buffer too small.
If caller provided a buffer that's large enough to restore data from
lock box, actual data length is not returned. It needs to be updated
in case of return status as success as well.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Anbazhagan Baraneedharan <anbazhagan@hp.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>
MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c

index 28d5180e011e51dca7614ec0174e3adcb6998bec..5a11743cb921bb2f47e8ba8920a52567b2ee33a8 100644 (file)
@@ -217,7 +217,10 @@ SmmLockBoxRestore (
                (VOID *)(UINTN)TempLockBoxParameterRestore.Buffer,\r
                (UINTN *)&TempLockBoxParameterRestore.Length\r
                );\r
-    if (Status == EFI_BUFFER_TOO_SMALL) {\r
+    if ((Status == EFI_BUFFER_TOO_SMALL) || (Status == EFI_SUCCESS)) {\r
+      //\r
+      // Return the actual Length value.\r
+      //\r
       LockBoxParameterRestore->Length = TempLockBoxParameterRestore.Length;\r
     }\r
   }\r