]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/ConfigAccess.c
1) Keep the original Varstore Name when replacing it with L"Setup" to allow Framework...
[mirror_edk2.git] / EdkCompatibilityPkg / Compatibility / FrameworkHiiToUefiHiiThunk / ConfigAccess.c
index edbc34a3e49f4cdc2eb4575ec9fb9cdad7742887..6be0496c61240a25e2517c20ce0d095ef43e1694 100644 (file)
@@ -150,13 +150,20 @@ GetStorageFromConfigString (
 {\r
   LIST_ENTRY             *StorageList;\r
   FORMSET_STORAGE        *Storage;\r
+  CHAR16                 *Name;\r
 \r
   StorageList = GetFirstNode (&FormSet->StorageListHead);\r
 \r
   while (!IsNull (&FormSet->StorageListHead, StorageList)) {\r
     Storage = FORMSET_STORAGE_FROM_LINK (StorageList);\r
 \r
-    if (IsConfigHdrMatch (ConfigString, &Storage->Guid, Storage->Name)) {\r
+    if ((Storage->VarStoreId == FormSet->DefaultVarStoreId) && (FormSet->OriginalDefaultVarStoreName != NULL)) {\r
+      Name = FormSet->OriginalDefaultVarStoreName;\r
+    } else {\r
+      Name = Storage->Name;\r
+    }\r
+    \r
+    if (IsConfigHdrMatch (ConfigString, &Storage->Guid, Name)) {\r
       return Storage;\r
     }\r
 \r
@@ -403,11 +410,20 @@ ThunkExtractConfig (
   VOID                                        *Data;\r
   UINTN                                       DataSize;\r
 \r
+  if (Request == NULL) {\r
+    return EFI_NOT_FOUND;\r
+  }\r
+\r
   Data = NULL;\r
   ConfigAccess = CONFIG_ACCESS_PRIVATE_FROM_PROTOCOL (This);\r
 \r
   BufferStorage = GetStorageFromConfigString (ConfigAccess->ThunkContext->FormSet, Request);\r
 \r
+  if (BufferStorage == NULL) {\r
+    *Progress = (EFI_STRING) Request;\r
+    return EFI_NOT_FOUND;\r
+  }\r
+\r
   if (ConfigAccess->ThunkContext->NvMapOverride == NULL) {\r
     //\r
     // NvMapOverride is not used. Get the Storage data from EFI Variable or Framework Form Callback.\r
@@ -491,11 +507,20 @@ ThunkRouteConfig (
   BOOLEAN                                     ResetRequired;\r
   BOOLEAN                                     DataAllocated;\r
 \r
+  if (Configuration == NULL) {\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
+\r
   Data = NULL;\r
   ConfigAccess = CONFIG_ACCESS_PRIVATE_FROM_PROTOCOL (This);\r
 \r
   BufferStorage = GetStorageFromConfigString (ConfigAccess->ThunkContext->FormSet, Configuration);\r
 \r
+  if (BufferStorage == NULL) {\r
+    *Progress = Configuration;\r
+    return EFI_NOT_FOUND;\r
+  }\r
+\r
   DataSize2     = BufferStorage->Size;\r
   if (ConfigAccess->ThunkContext->NvMapOverride == NULL) {\r
     DataAllocated = TRUE;\r