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:
@@ -651,7 +651,9 @@ ReleaseKeyboardLayoutResources (
|
||||
USB_NS_KEY *UsbNsKey;
|
||||
LIST_ENTRY *Link;
|
||||
|
||||
SafeFreePool (UsbKeyboardDevice->KeyConvertionTable);
|
||||
if (UsbKeyboardDevice->KeyConvertionTable != NULL) {
|
||||
FreePool (UsbKeyboardDevice->KeyConvertionTable);
|
||||
}
|
||||
UsbKeyboardDevice->KeyConvertionTable = NULL;
|
||||
|
||||
while (!IsListEmpty (&UsbKeyboardDevice->NsKeyList)) {
|
||||
@@ -659,8 +661,8 @@ ReleaseKeyboardLayoutResources (
|
||||
UsbNsKey = USB_NS_KEY_FORM_FROM_LINK (Link);
|
||||
RemoveEntryList (&UsbNsKey->Link);
|
||||
|
||||
gBS->FreePool (UsbNsKey->NsKey);
|
||||
gBS->FreePool (UsbNsKey);
|
||||
FreePool (UsbNsKey->NsKey);
|
||||
FreePool (UsbNsKey);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user