MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
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
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
© 2016 - 2024 Red Hat, Inc.