- Do not ignore pool tag in ExFreePoolWithTag when freeing to a lookaside list
svn path=/trunk/; revision=56737
BlockSize * POOL_BLOCK_SIZE,
Entry->PoolType - 1);
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?
//
//
// Is this allocation small enough to have come from a lookaside list?
//
//
OldIrql = ExLockPool(PoolDesc);
//
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
//
//
// Check if the next allocation is at the end of the page
//