From 565b3c807ccb529b07c3b42ef00429aa4e19f882 Mon Sep 17 00:00:00 2001 From: darylm503 Date: Mon, 24 Sep 2012 22:44:03 +0000 Subject: [PATCH] StdLib/LibC/StdLib/Malloc.c: Make the free() function conform to the ISO/IEC 9899 (C95) specification. The C95 specification states: "The free function causes the space pointed to by ptr to be deallocated, that is, made available for further allocation. If ptr is a null pointer, no action occurs". The UEFI FreePool() function, which the StdLib implementation of free() uses, does not make this check. This fix adds a check for null to the free() function such that if the pointer argument is NULL, nothing is done. Contributed-under: TianoCore Contribution Agreement 1.0 Reviewed-by: erik.c.bjorge@intel.com git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13739 6f19259b-4bc3-4df7-8a09-765794883524 --- StdLib/LibC/StdLib/Malloc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/StdLib/LibC/StdLib/Malloc.c b/StdLib/LibC/StdLib/Malloc.c index 51068d3a06..3f79deb49b 100644 --- a/StdLib/LibC/StdLib/Malloc.c +++ b/StdLib/LibC/StdLib/Malloc.c @@ -137,7 +137,9 @@ calloc(size_t Num, size_t Size) void free(void *Ptr) { - (void) gBS->FreePool (Ptr); + if(Ptr != NULL) { + (void) gBS->FreePool (Ptr); + } } /** The realloc function changes the size of the object pointed to by Ptr to -- 2.39.5