From 94322ba2cbb48e2fb5d69b2e3088be25b96787f5 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 17 Dec 2011 08:35:31 +0000 Subject: [PATCH] [WIN32K] EngAllocMem: - Respect the FL_NONPAGED_MEMORY flag (actually allocate the memory from non-paged pool) - Fix an improper flag comparison that caused memory allocated with both FL_NONPAGED_MEMORY and FL_ZERO_MEMORY set to not be zeroed as requested svn path=/trunk/; revision=54669 --- reactos/subsystems/win32/win32k/eng/mem.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/reactos/subsystems/win32/win32k/eng/mem.c b/reactos/subsystems/win32/win32k/eng/mem.c index 93d7fb52e3c..3427b8adf02 100644 --- a/reactos/subsystems/win32/win32k/eng/mem.c +++ b/reactos/subsystems/win32/win32k/eng/mem.c @@ -19,16 +19,19 @@ EngAllocMem(ULONG Flags, ULONG MemSize, ULONG Tag) { - PVOID newMem; + PVOID newMem; - newMem = ExAllocatePoolWithTag(PagedPool, MemSize, Tag); + newMem = ExAllocatePoolWithTag((Flags & FL_NONPAGED_MEMORY) ? NonPagedPool : PagedPool, + MemSize, + Tag); - if (Flags == FL_ZERO_MEMORY && NULL != newMem) - { - RtlZeroMemory(newMem, MemSize); - } + if (newMem == NULL) + return NULL; - return newMem; + if (Flags & FL_ZERO_MEMORY) + RtlZeroMemory(newMem, MemSize); + + return newMem; } /*