Index: lib/rtl/heap.c =================================================================== --- lib/rtl/heap.c (revision 54178) +++ lib/rtl/heap.c (working copy) @@ -1355,7 +1355,7 @@ if (NtGlobalFlags & FLG_HEAP_ENABLE_FREE_CHECK) Flags |= HEAP_FREE_CHECKING_ENABLED; - if (NtGlobalFlags & FLG_HEAP_ENABLE_TAIL_CHECK) + //if (NtGlobalFlags & FLG_HEAP_ENABLE_TAIL_CHECK) Flags |= HEAP_TAIL_CHECKING_ENABLED; if (RtlpGetMode() == UserMode) @@ -2266,6 +2266,10 @@ if (Locked) RtlLeaveHeapLock(Heap->LockVariable); return FALSE; } + + /* Check */ + if((HeapEntry->Flags & HEAP_ENTRY_FILL_PATTERN) && (!RtlpCheckInUsePattern(HeapEntry))) + ASSERT(FALSE); if (HeapEntry->Flags & HEAP_ENTRY_VIRTUAL_ALLOC) { Index: lib/rtl/heap.h =================================================================== --- lib/rtl/heap.h (revision 54178) +++ lib/rtl/heap.h (working copy) @@ -458,5 +458,8 @@ RtlpPageHeapSize(HANDLE HeapPtr, ULONG Flags, PVOID Ptr); + +BOOLEAN NTAPI +RtlpCheckInUsePattern(PHEAP_ENTRY HeapEntry); #endif