From 676df92c2c0c5bdeb0f8e27349f5dd467928ce09 Mon Sep 17 00:00:00 2001 From: qwang12 Date: Thu, 30 Oct 2008 07:32:46 +0000 Subject: Remove SafeFreePool from MemoryAllocationLib as this API's name is misleading. Its implementation only check if a pointer is NULL. If a garbage pointer is passed in, the gBS->FreePool will still ASSERT in debug build and return error code. It is recommended that module writer should keep track how a pointer is allocated and free it after use. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6306 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Library/GenericBdsLib/BdsConsole.c | 29 ++++++++++++++++++------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'MdeModulePkg/Library/GenericBdsLib/BdsConsole.c') diff --git a/MdeModulePkg/Library/GenericBdsLib/BdsConsole.c b/MdeModulePkg/Library/GenericBdsLib/BdsConsole.c index dacc9c22d1..376a3187be 100644 --- a/MdeModulePkg/Library/GenericBdsLib/BdsConsole.c +++ b/MdeModulePkg/Library/GenericBdsLib/BdsConsole.c @@ -126,7 +126,9 @@ BdsLibUpdateConsoleVariable ( // TempNewDevicePath = NewDevicePath; NewDevicePath = AppendDevicePathInstance (NewDevicePath, CustomizedConDevicePath); - SafeFreePool(TempNewDevicePath); + if (TempNewDevicePath != NULL) { + FreePool(TempNewDevicePath); + } } } @@ -157,10 +159,16 @@ BdsLibUpdateConsoleVariable ( ); if (VarConsole == NewDevicePath) { - SafeFreePool(VarConsole); + if (VarConsole != NULL) { + FreePool(VarConsole); + } } else { - SafeFreePool(VarConsole); - SafeFreePool(NewDevicePath); + if (VarConsole != NULL) { + FreePool(VarConsole); + } + if (NewDevicePath) { + FreePool(NewDevicePath); + } } return EFI_SUCCESS; @@ -258,10 +266,10 @@ BdsLibConnectConsoleVariable ( DeviceExist = TRUE; } } - SafeFreePool(Instance); + FreePool(Instance); } while (CopyOfDevicePath != NULL); - SafeFreePool (StartDevicePath); + FreePool (StartDevicePath); if (!DeviceExist) { return EFI_NOT_FOUND; @@ -312,7 +320,10 @@ BdsLibConnectAllConsoles ( BdsLibUpdateConsoleVariable (L"ConIn", ConDevicePath, NULL); } - SafeFreePool(HandleBuffer); + if (HandleBuffer != NULL) { + FreePool(HandleBuffer); + HandleBuffer = NULL; + } gBS->LocateHandleBuffer ( ByProtocol, @@ -331,7 +342,9 @@ BdsLibConnectAllConsoles ( BdsLibUpdateConsoleVariable (L"ErrOut", ConDevicePath, NULL); } - SafeFreePool(HandleBuffer); + if (HandleBuffer != NULL) { + FreePool(HandleBuffer); + } // // Connect all console variables -- cgit v1.2.3