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
This commit is contained in:
@@ -724,7 +724,9 @@ NewStringCpy (
|
||||
IN CHAR16 *Src
|
||||
)
|
||||
{
|
||||
SafeFreePool (*Dest);
|
||||
if (*Dest != NULL) {
|
||||
FreePool (*Dest);
|
||||
}
|
||||
*Dest = AllocateCopyPool (StrSize (Src), Src);
|
||||
ASSERT (*Dest != NULL);
|
||||
}
|
||||
@@ -865,7 +867,9 @@ SetValueByName (
|
||||
Node = NAME_VALUE_NODE_FROM_LINK (Link);
|
||||
|
||||
if (StrCmp (Name, Node->Name) == 0) {
|
||||
SafeFreePool (Node->EditValue);
|
||||
if (Node->EditValue != NULL) {
|
||||
FreePool (Node->EditValue);
|
||||
}
|
||||
Node->EditValue = AllocateCopyPool (StrSize (Value), Value);
|
||||
ASSERT (Node->EditValue != NULL);
|
||||
return EFI_SUCCESS;
|
||||
|
Reference in New Issue
Block a user