/* De-allocates or frees a memory block */\r
void free (void *ptr)\r
{\r
- FreePool (ptr);\r
+ //\r
+ // In Standard C, free() handles a null pointer argument transparently. This\r
+ // is not true of FreePool() below, so protect it.\r
+ //\r
+ if (ptr != NULL) {\r
+ FreePool (ptr);\r
+ }\r
}\r