Author: rmessiant Date: Tue Feb 8 06:06:33 2011 New Revision: 50617
URL: http://svn.reactos.org/svn/reactos?rev=50617&view=rev Log: [HEAP] - RtlpInsertFreeBlockHelper: Don't validate the Previous Size of the next Heap Entry when inserting a free Heap Entry into a free list. Should solve bug #5843 and may affect bug #5857. All callers of this function already perform this check, except for RtlpInsertFreeBlock, a function used during Heap Segment creation/expansion. RtlpInsertFreeBlock creates multiple free Heap Entries (using the helper function) if the free space is too big to be contained in a single Heap Entry. In such a case however, it creates a Heap Entry and calls the helper before creating the next Heap Entry, which triggers this assert.
Modified: trunk/reactos/lib/rtl/heap.c
Modified: trunk/reactos/lib/rtl/heap.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/heap.c?rev=50617&am... ============================================================================== --- trunk/reactos/lib/rtl/heap.c [iso-8859-1] (original) +++ trunk/reactos/lib/rtl/heap.c [iso-8859-1] Tue Feb 8 06:06:33 2011 @@ -233,12 +233,6 @@ { /* Clear out all flags except the last entry one */ FreeEntry->Flags &= HEAP_ENTRY_LAST_ENTRY; - } - - /* Check if PreviousSize of the next entry matches ours */ - if (!(FreeEntry->Flags & HEAP_ENTRY_LAST_ENTRY)) - { - ASSERT(((PHEAP_ENTRY)FreeEntry + BlockSize)->PreviousSize == BlockSize); }
/* Insert it either into dedicated or non-dedicated list */