]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg:Fix the issue that Commit changes and Exit fail when add driver option
authorDandan Bi <dandan.bi@intel.com>
Fri, 14 Aug 2015 01:06:48 +0000 (01:06 +0000)
committerdandanbi <dandanbi@Edk2>
Fri, 14 Aug 2015 01:06:48 +0000 (01:06 +0000)
When add driver option using file,input the description and then commit changes and exit,
it doesn't work.it caused by the commit 18216.When variable DriverOrderList in Variable.c
is NULL,it also need do the follow path,shouldn't return.Now change the code.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Qiu Shumin <shumin.qiu@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18220 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Application/UiApp/BootMaint/Variable.c

index 8c10540854f02023b0869b67b814dd464b63f70c..2b594fcbd4c76958d8ce673a4262846ee5ea417a 100644 (file)
@@ -524,7 +524,6 @@ Var_UpdateErrorOutOption (
 \r
   @retval EFI_OUT_OF_RESOURCES If not enought memory to complete the operation.\r
   @retval EFI_SUCCESS          If function completes successfully.\r
-  @return Others Errors        Return errors from call to gRT->GetVariable.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -660,13 +659,12 @@ Var_UpdateDriverOption (
                   Buffer\r
                   );\r
   ASSERT_EFI_ERROR (Status);\r
-  Status = GetEfiGlobalVariable2 (L"DriverOrder", (VOID **) &DriverOrderList, &DriverOrderListSize);\r
-  if (EFI_ERROR (Status) || DriverOrderList == NULL){\r
-    return Status;\r
-  }\r
+  GetEfiGlobalVariable2 (L"DriverOrder", (VOID **) &DriverOrderList, &DriverOrderListSize);\r
   NewDriverOrderList = AllocateZeroPool (DriverOrderListSize + sizeof (UINT16));\r
   ASSERT (NewDriverOrderList != NULL);\r
-  CopyMem (NewDriverOrderList, DriverOrderList, DriverOrderListSize);\r
+  if (DriverOrderList != NULL){\r
+    CopyMem (NewDriverOrderList, DriverOrderList, DriverOrderListSize);\r
+  }\r
   NewDriverOrderList[DriverOrderListSize / sizeof (UINT16)] = Index;\r
   if (DriverOrderList != NULL) {\r
     EfiLibDeleteVariable (L"DriverOrder", &gEfiGlobalVariableGuid);\r
@@ -704,7 +702,6 @@ Var_UpdateDriverOption (
 \r
   @retval EFI_OUT_OF_RESOURCES If not enought memory to complete the operation.\r
   @retval EFI_SUCCESS          If function completes successfully.\r
-  @return Others Errors        Return errors from call to gRT->GetVariable.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -829,13 +826,12 @@ Var_UpdateBootOption (
                   );\r
   ASSERT_EFI_ERROR (Status);\r
 \r
-  Status = GetEfiGlobalVariable2 (L"BootOrder", (VOID **) &BootOrderList, &BootOrderListSize);\r
-  if (EFI_ERROR (Status) || BootOrderList == NULL){\r
-    return Status;\r
-  }\r
+  GetEfiGlobalVariable2 (L"BootOrder", (VOID **) &BootOrderList, &BootOrderListSize);\r
   NewBootOrderList = AllocateZeroPool (BootOrderListSize + sizeof (UINT16));\r
   ASSERT (NewBootOrderList != NULL);\r
-  CopyMem (NewBootOrderList, BootOrderList, BootOrderListSize);\r
+  if (BootOrderList != NULL){\r
+    CopyMem (NewBootOrderList, BootOrderList, BootOrderListSize);\r
+  }\r
   NewBootOrderList[BootOrderListSize / sizeof (UINT16)] = Index;\r
 \r
   if (BootOrderList != NULL) {\r