ArmPkg/BdsLib: Fixed memory leak

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12996 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
oliviermartin 2012-02-09 15:28:25 +00:00
parent 7598f36265
commit 3d565dd674

View File

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