From a87de8e0b6bb56688178e24c22c5be9059edc83c Mon Sep 17 00:00:00 2001 From: Aleksey Bragin Date: Sat, 9 Oct 2010 09:15:50 +0000 Subject: [PATCH] [KERNEL32] - Revert incorrect changes from 34404 and 40910: RtlSetUserFlagsHeap() doesn't set usual heap flags, it sets special user-settable heap entry flags. With the new heap manager such usage corrupts heap integrity (not to say prototype of this function is incorrect). - RtlReAllocateHeap() is supposed to copy user values and flags so there is no need to set them afterwise again. - Fix a typo in comments. svn path=/trunk/; revision=49063 --- reactos/dll/win32/kernel32/mem/global.c | 13 ------------- reactos/dll/win32/kernel32/mem/local.c | 18 ------------------ reactos/dll/win32/kernel32/process/procsup.c | 2 +- 3 files changed, 1 insertion(+), 32 deletions(-) diff --git a/reactos/dll/win32/kernel32/mem/global.c b/reactos/dll/win32/kernel32/mem/global.c index f2cfca5b01c..a0449e36fca 100644 --- a/reactos/dll/win32/kernel32/mem/global.c +++ b/reactos/dll/win32/kernel32/mem/global.c @@ -101,7 +101,6 @@ GlobalAlloc(UINT uFlags, { /* All worked well, save our heap entry */ RtlSetUserValueHeap(hProcessHeap, HEAP_NO_SERIALIZE, Ptr, hMemory); - RtlSetUserFlagsHeap(hProcessHeap, HEAP_NO_SERIALIZE, Ptr, Flags); } } @@ -529,10 +528,6 @@ GlobalReAlloc(HGLOBAL hMem, HEAP_NO_SERIALIZE, Ptr, hMem); - RtlSetUserFlagsHeap(hProcessHeap, - HEAP_NO_SERIALIZE, - Ptr, - Flags); } } else @@ -562,10 +557,6 @@ GlobalReAlloc(HGLOBAL hMem, HEAP_NO_SERIALIZE, Ptr, hMem); - RtlSetUserFlagsHeap(hProcessHeap, - HEAP_NO_SERIALIZE, - Ptr, - Flags); } } @@ -668,10 +659,6 @@ GlobalReAlloc(HGLOBAL hMem, HEAP_NO_SERIALIZE, HandleEntry->Object, hMem); - RtlSetUserFlagsHeap(hProcessHeap, - HEAP_NO_SERIALIZE, - HandleEntry->Object, - Flags); } } } diff --git a/reactos/dll/win32/kernel32/mem/local.c b/reactos/dll/win32/kernel32/mem/local.c index 61428b97166..68d9de20699 100644 --- a/reactos/dll/win32/kernel32/mem/local.c +++ b/reactos/dll/win32/kernel32/mem/local.c @@ -352,11 +352,6 @@ LocalReAlloc(HLOCAL hMem, HEAP_NO_SERIALIZE, Ptr, hMem); - RtlSetUserFlagsHeap(hProcessHeap, - HEAP_NO_SERIALIZE, - Ptr, - Flags); - } } else @@ -378,19 +373,6 @@ LocalReAlloc(HLOCAL hMem, /* And do the re-allocation */ Ptr = RtlReAllocateHeap(hProcessHeap, Flags, Ptr, dwBytes); - - if (Ptr) - { - /* Allocation succeeded, so save our entry */ - RtlSetUserValueHeap(hProcessHeap, - HEAP_NO_SERIALIZE, - Ptr, - hMem); - RtlSetUserFlagsHeap(hProcessHeap, - HEAP_NO_SERIALIZE, - Ptr, - Flags); - } } /* Make sure we have a pointer by now */ diff --git a/reactos/dll/win32/kernel32/process/procsup.c b/reactos/dll/win32/kernel32/process/procsup.c index 2e45bbcc423..2afb4e06111 100644 --- a/reactos/dll/win32/kernel32/process/procsup.c +++ b/reactos/dll/win32/kernel32/process/procsup.c @@ -805,7 +805,7 @@ CreateProcessInternalW(HANDLE hToken, if (lpCommandLine) { - /* Serach for escape sequences */ + /* Search for escape sequences */ ScanString = lpCommandLine; while (NULL != (ScanString = wcschr(ScanString, L'^'))) {