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/GraphicsLib/Graphics.c | 36 +++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 10 deletions(-) (limited to 'MdeModulePkg/Library/GraphicsLib/Graphics.c') diff --git a/MdeModulePkg/Library/GraphicsLib/Graphics.c b/MdeModulePkg/Library/GraphicsLib/Graphics.c index 75aa91dc6c..bbf07feddd 100644 --- a/MdeModulePkg/Library/GraphicsLib/Graphics.c +++ b/MdeModulePkg/Library/GraphicsLib/Graphics.c @@ -467,7 +467,9 @@ EnableQuietBootEx ( // Currently only support BMP format. // if (Format != EfiBadgingFormatBMP) { - SafeFreePool (ImageData); + if (ImageData != NULL) { + FreePool (ImageData); + } continue; } } else { @@ -494,7 +496,9 @@ EnableQuietBootEx ( &Width ); if (EFI_ERROR (Status)) { - SafeFreePool (ImageData); + if (ImageData != NULL) { + FreePool (ImageData); + } if (Badging == NULL) { return Status; } else { @@ -589,8 +593,12 @@ EnableQuietBootEx ( } } - SafeFreePool (ImageData); - SafeFreePool (Blt); + if (ImageData != NULL) { + FreePool (ImageData); + } + if (Blt != NULL) { + FreePool (Blt); + } if (Badging == NULL) { break; @@ -780,8 +788,8 @@ Print ( Blt->Image.Bitmap = AllocateZeroPool (Blt->Width * Blt->Height * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)); if (Blt->Image.Bitmap == NULL) { - SafeFreePool (Blt); - SafeFreePool (Buffer); + FreePool (Blt); + FreePool (Buffer); return EFI_OUT_OF_RESOURCES; } @@ -824,15 +832,23 @@ Print ( ); } - SafeFreePool (RowInfoArray); - SafeFreePool (Blt->Image.Bitmap); + if (RowInfoArray != NULL) { + FreePool (RowInfoArray); + } + if (Blt->Image.Bitmap != NULL) { + FreePool (Blt->Image.Bitmap); + } } else { Status = EFI_UNSUPPORTED; } Error: - SafeFreePool (Blt); - SafeFreePool (FontInfo); + if (Blt != NULL) { + FreePool (Blt); + } + if (FontInfo != NULL) { + FreePool (FontInfo); + } FreePool (Buffer); if (EFI_ERROR (Status)) { -- cgit v1.2.3