summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.c4
-rw-r--r--MdeModulePkg/Library/UefiHiiLib/HiiLib.c9
2 files changed, 11 insertions, 2 deletions
diff --git a/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.c b/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.c
index 2b175a5904..982db88dbf 100644
--- a/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.c
+++ b/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.c
@@ -273,7 +273,7 @@ BootMaintCallback (
//
CurrentFakeNVMap = (BMM_FAKE_NV_DATA *) HiiGetBrowserData (&mBootMaintGuid, mBootMaintStorageName, sizeof (BMM_FAKE_NV_DATA));
if (CurrentFakeNVMap == NULL) {
- CurrentFakeNVMap = &Private->BmmFakeNvData;
+ return EFI_NOT_FOUND;
}
//
@@ -590,7 +590,7 @@ BootMaintCallback (
//
// Update local settting.
//
- if ((UINTN) CurrentFakeNVMap != (UINTN) &Private->BmmFakeNvData) {
+ if (CurrentFakeNVMap != NULL) {
CopyMem (&Private->BmmFakeNvData, CurrentFakeNVMap, sizeof (BMM_FAKE_NV_DATA));
FreePool (CurrentFakeNVMap);
}
diff --git a/MdeModulePkg/Library/UefiHiiLib/HiiLib.c b/MdeModulePkg/Library/UefiHiiLib/HiiLib.c
index d36828a115..ea3c22348e 100644
--- a/MdeModulePkg/Library/UefiHiiLib/HiiLib.c
+++ b/MdeModulePkg/Library/UefiHiiLib/HiiLib.c
@@ -564,6 +564,15 @@ InternalHiiBrowserCallback (
VariableGuid,
VariableName
);
+
+ if (!EFI_ERROR (Status)) {
+ //
+ // No Resluts Data, only allocate one char for '\0'
+ //
+ ResultsData = AllocateZeroPool (sizeof (CHAR16));
+ return ResultsData;
+ }
+
if (Status != EFI_BUFFER_TOO_SMALL) {
return NULL;
}