mirror of https://github.com/acidanthera/audk.git
ArmPlatformPkg/Bds: Fixed memory leak
Device Paths were not freed after calling BDS_LOAD_OPTION_SUPPORT.CreateDevicePathNode() Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16514 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
2366640023
commit
830e5b8c0f
|
@ -341,6 +341,9 @@ BootMenuAddBootOption (
|
|||
if (InitrdPathNodes != NULL) {
|
||||
// Append the Device Path to the selected device path
|
||||
InitrdPath = AppendDevicePath (SupportedBootDevice->DevicePathProtocol, (CONST EFI_DEVICE_PATH_PROTOCOL *)InitrdPathNodes);
|
||||
// Free the InitrdPathNodes created by Support->CreateDevicePathNode()
|
||||
FreePool (InitrdPathNodes);
|
||||
|
||||
if (InitrdPath == NULL) {
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
goto EXIT;
|
||||
|
@ -540,6 +543,8 @@ BootMenuUpdateBootOption (
|
|||
// Append the Device Path to the selected device path
|
||||
InitrdPath = AppendDevicePath (TempInitrdPath, (CONST EFI_DEVICE_PATH_PROTOCOL *)InitrdPathNodes);
|
||||
FreePool (TempInitrdPath);
|
||||
// Free the InitrdPathNodes created by Support->CreateDevicePathNode()
|
||||
FreePool (InitrdPathNodes);
|
||||
if (InitrdPath == NULL) {
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
goto EXIT;
|
||||
|
@ -846,6 +851,8 @@ UpdateFdtPath (
|
|||
if (FdtDevicePathNodes != NULL) {
|
||||
// Append the Device Path node to the select device path
|
||||
FdtDevicePath = AppendDevicePath (SupportedBootDevice->DevicePathProtocol, FdtDevicePathNodes);
|
||||
// Free the FdtDevicePathNodes created by Support->CreateDevicePathNode()
|
||||
FreePool (FdtDevicePathNodes);
|
||||
FdtDevicePathSize = GetDevicePathSize (FdtDevicePath);
|
||||
Status = gRT->SetVariable (
|
||||
(CHAR16*)L"Fdt",
|
||||
|
|
Loading…
Reference in New Issue