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

Star Zeng posted 1 patch 17 weeks 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 17 weeks 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 17 weeks 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