]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Library/UefiHiiLib/HiiLib.c
Update HiiDataBase to fix parsing Hii package error. Some HiiPackages have no varstor...
[mirror_edk2.git] / MdeModulePkg / Library / UefiHiiLib / HiiLib.c
index de7cb3f46e0b6b2e7c076480b20c454a93cd1061..b9323706a6f24f95462bb2101224e818d4381f29 100644 (file)
@@ -1177,6 +1177,11 @@ InternalHiiValidateCurrentSetting (
     }\r
     Link = Link->ForwardLink;      \r
   }\r
+  \r
+  if (IsListEmpty (&CurrentBlockArray->Entry)) {\r
+    Status = EFI_SUCCESS;\r
+    goto Done;\r
+  }\r
 \r
   //\r
   // 2. Check IFR value is in block data, then Validate Vaule\r
@@ -1233,7 +1238,7 @@ InternalHiiValidateCurrentSetting (
           // Check the matched VarStoreId is found.\r
           //\r
           if (IfrVarStore == NULL) {\r
-            Status = EFI_NOT_FOUND;\r
+            Status = EFI_SUCCESS;\r
             goto Done;\r
           }\r
           break;\r
@@ -1580,7 +1585,7 @@ BOOLEAN
 EFIAPI\r
 InternalHiiIfrValueAction (\r
   IN CONST EFI_STRING Request,  OPTIONAL\r
-  IN UINT16        DefaultId,\r
+  IN UINT16           DefaultId,\r
   IN UINT8            ActionType\r
   )\r
 {\r
@@ -1738,6 +1743,7 @@ InternalHiiIfrValueAction (
       // Its default value and validating can't execute by parsing IFR data.\r
       // Directly jump into the next ConfigAltResp string for another pair Guid, Name, and Path.   \r
       //\r
+         Status = EFI_SUCCESS;\r
       goto NextConfigAltResp;\r
     }\r
     \r
@@ -1819,7 +1825,8 @@ InternalHiiIfrValueAction (
       // Not found the matched default string ID\r
       //\r
       if (EFI_ERROR (Status)) {\r
-        goto Done;\r
+        Status = EFI_SUCCESS;\r
+        goto NextConfigAltResp;\r
       }\r
     }\r
     \r
@@ -1838,7 +1845,8 @@ InternalHiiIfrValueAction (
                                 );\r
 \r
     if (EFI_ERROR (Status)) {\r
-      goto Done;\r
+      Status = EFI_SUCCESS;\r
+      goto NextConfigAltResp;\r
     }\r
     \r
     //\r
@@ -1861,6 +1869,7 @@ InternalHiiIfrValueAction (
       goto Done;\r
     }\r
 \r
+NextConfigAltResp:\r
     //\r
     // Free the allocated pacakge buffer and the got ConfigResp string.\r
     //\r
@@ -1868,11 +1877,12 @@ InternalHiiIfrValueAction (
       FreePool (HiiPackageList);\r
       HiiPackageList = NULL;\r
     }\r
+    \r
+       if (ConfigResp != NULL) {\r
+         FreePool (ConfigResp);\r
+         ConfigResp = NULL;\r
+       }\r
 \r
-    FreePool (ConfigResp);\r
-    ConfigResp = NULL;\r
-\r
-NextConfigAltResp:\r
     //\r
     // Free the allocated buffer.\r
     //\r