From 5b0f3db675966f6e2e8acb0319dd6b898082135b Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst Date: Wed, 21 May 2008 15:29:31 -0700 Subject: [PATCH] ntdll: Give earlier notify to valgrind we are trying to free memory so it can catch invalid frees --- dlls/ntdll/heap.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dlls/ntdll/heap.c b/dlls/ntdll/heap.c index 3cd59f7..2b87e10 100644 --- a/dlls/ntdll/heap.c +++ b/dlls/ntdll/heap.c @@ -1280,8 +1280,10 @@ BOOLEAN WINAPI RtlFreeHeap( HANDLE heap, ULONG flags, PVOID ptr ) flags |= heapPtr->flags; if (!(flags & HEAP_NO_SERIALIZE)) RtlEnterCriticalSection( &heapPtr->critSection ); - /* Some sanity checks */ + /* Inform valgrind we are trying to free memory, so it can throw up an error message */ + notify_free( ptr ); + /* Some sanity checks */ pInUse = (ARENA_INUSE *)ptr - 1; if (!(subheap = HEAP_FindSubHeap( heapPtr, pInUse ))) goto error; if ((char *)pInUse < (char *)subheap->base + subheap->headerSize) goto error; @@ -1289,8 +1291,6 @@ BOOLEAN WINAPI RtlFreeHeap( HANDLE heap, ULONG flags, PVOID ptr ) /* Turn the block into a free block */ - notify_free( ptr ); - HEAP_MakeInUseBlockFree( subheap, pInUse ); if (!(flags & HEAP_NO_SERIALIZE)) RtlLeaveCriticalSection( &heapPtr->critSection ); -- 1.5.4.1