From b5ceb7733aee43dbe894f9131680b28de5482e3a Mon Sep 17 00:00:00 2001 From: Aleksey Bragin Date: Sat, 28 Mar 2009 16:53:51 +0000 Subject: [PATCH] - Pass correct allocation flags to ZwAllocateVirtualMemory. - Don't provide region size when freeing virtual memory (spotted by Evgeniy Boltik, confirmed by MSDN). svn path=/trunk/; revision=40268 --- reactos/subsystems/win32/win32k/eng/mem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reactos/subsystems/win32/win32k/eng/mem.c b/reactos/subsystems/win32/win32k/eng/mem.c index 8ec3aa5b4f8..0583f58d0e3 100644 --- a/reactos/subsystems/win32/win32k/eng/mem.c +++ b/reactos/subsystems/win32/win32k/eng/mem.c @@ -79,7 +79,7 @@ EngAllocUserMem(SIZE_T cj, ULONG Tag) SIZE_T MemSize = sizeof(USERMEMHEADER) + cj; PUSERMEMHEADER Header; - Status = ZwAllocateVirtualMemory(NtCurrentProcess(), &NewMem, 0, &MemSize, MEM_COMMIT, PAGE_READWRITE); + Status = ZwAllocateVirtualMemory(NtCurrentProcess(), &NewMem, 0, &MemSize, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); if (! NT_SUCCESS(Status)) { @@ -100,7 +100,7 @@ VOID APIENTRY EngFreeUserMem(PVOID pv) { PUSERMEMHEADER Header = ((PUSERMEMHEADER) pv) - 1; - SIZE_T MemSize = sizeof(USERMEMHEADER) + Header->MemSize; + SIZE_T MemSize = 0; ZwFreeVirtualMemory(NtCurrentProcess(), (PVOID *) &Header, &MemSize, MEM_RELEASE); }