]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Fix a bug in UefiDefaultsToFwDefaults NULL should be returned if no Variable pack...
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Sat, 23 Aug 2008 09:37:32 +0000 (09:37 +0000)
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Sat, 23 Aug 2008 09:37:32 +0000 (09:37 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5719 6f19259b-4bc3-4df7-8a09-765794883524

EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/UefiIfrDefault.c

index 07e157df4e0c6c500fa4a38719846184eb6ae61a..4c382d4eeff58e4356c351bf5d7373228eb4a1e7 100644 (file)
@@ -652,6 +652,7 @@ UefiDefaultsToFwDefaults (
   UINT16                            DefaultId;\r
   EFI_HII_VARIABLE_PACK             *Pack;\r
   EFI_HII_VARIABLE_PACK_LIST        *PackList;\r
+  UINTN                             Index;\r
 \r
   if (DefaultMask == FRAMEWORK_EFI_IFR_FLAG_DEFAULT) {\r
     DefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;\r
@@ -685,6 +686,11 @@ UefiDefaultsToFwDefaults (
     List = GetNextNode (ListHead, List);  \r
   }\r
 \r
+  if (Count == 0) {\r
+    *VariablePackList = NULL;\r
+    return EFI_NOT_FOUND;\r
+  }\r
+\r
   Size = Size + Count * (sizeof (EFI_HII_VARIABLE_PACK_LIST) + sizeof (EFI_HII_VARIABLE_PACK));\r
   \r
   *VariablePackList = AllocateZeroPool (Size);\r
@@ -694,6 +700,7 @@ UefiDefaultsToFwDefaults (
 \r
   PackList = (EFI_HII_VARIABLE_PACK_LIST *) *VariablePackList;\r
   Pack     = (EFI_HII_VARIABLE_PACK *) (PackList + 1);\r
+  Index = 0;\r
   while (!IsNull (ListHead, List)) {\r
     Node = UEFI_IFR_BUFFER_STORAGE_NODE_FROM_LIST(List);\r
 \r
@@ -727,10 +734,13 @@ UefiDefaultsToFwDefaults (
       Size += sizeof (EFI_HII_VARIABLE_PACK_LIST);\r
 \r
       //\r
-      // initialize EFI_HII_VARIABLE_PACK_LIST\r
+      // Initialize EFI_HII_VARIABLE_PACK_LIST\r
       //\r
       PackList->VariablePack = Pack;\r
-      PackList->NextVariablePack = (EFI_HII_VARIABLE_PACK_LIST *)((UINT8 *) PackList + Size);\r
+      Index++;\r
+      if (Index < Count) {\r
+        PackList->NextVariablePack = (EFI_HII_VARIABLE_PACK_LIST *)((UINT8 *) PackList + Size);\r
+      }\r
             \r
     }\r
     \r