From 38882460832907074379fbf9b27b9fdd09c24758 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Wed, 14 Oct 1998 18:00:23 +0000 Subject: [PATCH] Bugfix: Local32Free caused free handles list corruption. --- memory/heap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/memory/heap.c b/memory/heap.c index 7ac904e6cff..62e9bd3b2a2 100644 --- a/memory/heap.c +++ b/memory/heap.c @@ -1672,7 +1672,7 @@ DWORD WINAPI Local32Alloc( HANDLE32 heap, DWORD size, INT16 type, DWORD flags ) for (i = 0; i < HTABLE_PAGESIZE; i += 4) *(DWORD *)((LPBYTE)header + i) = i+4; - if (page < 31) + if (page < HTABLE_NPAGES-1) header->freeListFirst[page+1] = 0xffff; } @@ -1756,7 +1756,7 @@ BOOL32 WINAPI Local32Free( HANDLE32 heap, DWORD addr, INT16 type ) header->freeListFirst[page] = header->freeListLast[page] = offset; else *(LPDWORD)((LPBYTE)header + header->freeListLast[page]) = offset, - header->freeListLast[page] = *handle; + header->freeListLast[page] = offset; *handle = 0; @@ -1769,7 +1769,7 @@ BOOL32 WINAPI Local32Free( HANDLE32 heap, DWORD addr, INT16 type ) break; header->limit -= HTABLE_PAGESIZE; - header->freeListFirst[page] = -1; + header->freeListFirst[page] = 0xffff; page--; } } -- 2.11.4.GIT