[edk2] [PATCH] MdeModulePkg SmmLockBox: Return actual data length in SmmLockBoxRestore

Star Zeng posted 1 patch 5 years, 8 months ago
Failed in applying to current master (apply log)
MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
[edk2] [PATCH] MdeModulePkg SmmLockBox: Return actual data length in SmmLockBoxRestore
Posted by Star Zeng 5 years, 8 months ago
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>
---
 MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c b/MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c
index 28d5180e011e..5a11743cb921 100644
--- a/MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c
+++ b/MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c
@@ -217,7 +217,10 @@ SmmLockBoxRestore (
                (VOID *)(UINTN)TempLockBoxParameterRestore.Buffer,
                (UINTN *)&TempLockBoxParameterRestore.Length
                );
-    if (Status == EFI_BUFFER_TOO_SMALL) {
+    if ((Status == EFI_BUFFER_TOO_SMALL) || (Status == EFI_SUCCESS)) {
+      //
+      // Return the actual Length value.
+      //
       LockBoxParameterRestore->Length = TempLockBoxParameterRestore.Length;
     }
   }
-- 
2.7.0.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH] MdeModulePkg SmmLockBox: Return actual data length in SmmLockBoxRestore
Posted by Yao, Jiewen 5 years, 8 months ago
Reviewed-by: jiewen.yao@intel.com

> -----Original Message-----
> From: Zeng, Star
> Sent: Monday, August 13, 2018 4:55 PM
> To: edk2-devel@lists.01.org
> Cc: Zeng, Star <star.zeng@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>;
> Anbazhagan Baraneedharan <anbazhagan@hp.com>
> Subject: [PATCH] MdeModulePkg SmmLockBox: Return actual data length in
> SmmLockBoxRestore
> 
> 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>
> ---
>  MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c
> b/MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c
> index 28d5180e011e..5a11743cb921 100644
> --- a/MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c
> +++ b/MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c
> @@ -217,7 +217,10 @@ SmmLockBoxRestore (
>                 (VOID *)(UINTN)TempLockBoxParameterRestore.Buffer,
>                 (UINTN *)&TempLockBoxParameterRestore.Length
>                 );
> -    if (Status == EFI_BUFFER_TOO_SMALL) {
> +    if ((Status == EFI_BUFFER_TOO_SMALL) || (Status == EFI_SUCCESS)) {
> +      //
> +      // Return the actual Length value.
> +      //
>        LockBoxParameterRestore->Length =
> TempLockBoxParameterRestore.Length;
>      }
>    }
> --
> 2.7.0.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel