[ros-diffs] [rmessiant] 50617: [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 affe...

rmessiant at svn.reactos.org rmessiant at svn.reactos.org
Tue Feb 8 06:06:34 UTC 2011


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&r1=50616&r2=50617&view=diff
==============================================================================
--- 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 */




More information about the Ros-diffs mailing list