]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPkg/BdsLib: Fixed memory leak
authoroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 9 Feb 2012 15:28:25 +0000 (15:28 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 9 Feb 2012 15:28:25 +0000 (15:28 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12996 6f19259b-4bc3-4df7-8a09-765794883524

ArmPkg/Library/BdsLib/BdsLoadOption.c

index fbf92c616e64af6624c1ed902881f9c2ad96014d..8abbc9b5cd0498916b2b1d1f7b71595a185de679 100644 (file)
@@ -1,6 +1,6 @@
 /** @file
 *
-*  Copyright (c) 2011, ARM Limited. All rights reserved.
+*  Copyright (c) 2011-2012, ARM Limited. All rights reserved.
 *
 *  This program and the accompanying materials
 *  are licensed and made available under the terms and conditions of the BSD License
@@ -216,7 +216,7 @@ BootOptionToLoadOptionVariable (
     }
 
     // Update (or Create) the BootOrder environment variable
-    Status = gRT->SetVariable (
+    gRT->SetVariable (
         L"BootOrder",
         &gEfiGlobalVariableGuid,
         EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
@@ -224,6 +224,11 @@ BootOptionToLoadOptionVariable (
         BootOrder
         );
     DEBUG((EFI_D_ERROR,"Create %s\n",BootVariableName));
+
+    // Free memory allocated by GetEnvironmentVariable
+    if (!EFI_ERROR(Status)) {
+      FreePool (BootOrder);
+    }
   } else {
     DEBUG((EFI_D_ERROR,"Update %s\n",BootVariableName));
   }
@@ -258,6 +263,7 @@ BootOptionAllocateBootIndex (
         return BootIndex;
       }
     }
+    FreePool (BootOrder);
   }
   // Return the first index
   return 0;