[NTOSKRNL:MM]

- Do not ignore pool tag in ExFreePoolWithTag when freeing to a lookaside list

svn path=/trunk/; revision=56737
This commit is contained in:
Thomas Faber 2012-06-15 07:27:45 +00:00
parent 1fd67c9140
commit b81d71cff3

View file

@ -2150,6 +2150,15 @@ ExFreePoolWithTag(IN PVOID P,
BlockSize * POOL_BLOCK_SIZE,
Entry->PoolType - 1);
//
// Check block tag
//
if (TagToFree && TagToFree != Tag)
{
DPRINT1("Freeing pool - invalid tag specified: %.4s != %.4s\n", (char*)&TagToFree, (char*)&Tag);
KeBugCheckEx(BAD_POOL_CALLER, 0x0A, (ULONG_PTR)P, Tag, TagToFree);
}
//
// Is this allocation small enough to have come from a lookaside list?
//
@ -2200,15 +2209,6 @@ ExFreePoolWithTag(IN PVOID P,
//
OldIrql = ExLockPool(PoolDesc);
//
// Check block tag
//
if (TagToFree && TagToFree != Entry->PoolTag)
{
DPRINT1("Freeing pool - invalid tag specified: %.4s != %.4s\n", (char*)&TagToFree, (char*)&Entry->PoolTag);
KeBugCheckEx(BAD_POOL_CALLER, 0x0A, (ULONG_PTR)P, Entry->PoolTag, TagToFree);
}
//
// Check if the next allocation is at the end of the page
//