From d318fedb6dc607599eb28292e5f266526302aee4 Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Mon, 19 Jan 2009 08:02:26 +0000 Subject: [PATCH] fix some kernel32 virtual winetests svn path=/trunk/; revision=38928 --- reactos/ntoskrnl/mm/anonmem.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/reactos/ntoskrnl/mm/anonmem.c b/reactos/ntoskrnl/mm/anonmem.c index 75888e2e001..184d2f49ddd 100644 --- a/reactos/ntoskrnl/mm/anonmem.c +++ b/reactos/ntoskrnl/mm/anonmem.c @@ -569,7 +569,7 @@ NtAllocateVirtualMemory(IN HANDLE ProcessHandle, Protect); /* Check for valid protection flags */ - if ((Protect & PAGE_FLAGS_VALID_FROM_USER_MODE) != Protect) + if ((!Protect & PAGE_FLAGS_VALID_FROM_USER_MODE)) { DPRINT1("Invalid page protection\n"); return STATUS_INVALID_PAGE_PROTECTION; @@ -944,6 +944,12 @@ NtFreeVirtualMemory(IN HANDLE ProcessHandle, "*PRegionSize %x, FreeType %x)\n",ProcessHandle,*PBaseAddress, *PRegionSize,FreeType); + if (!(FreeType & (MEM_RELEASE | MEM_DECOMMIT))) + { + DPRINT1("Invalid FreeType\n"); + return STATUS_INVALID_PARAMETER_4; + } + BaseAddress = (PVOID)PAGE_ROUND_DOWN((*PBaseAddress)); RegionSize = PAGE_ROUND_UP((ULONG_PTR)(*PBaseAddress) + (*PRegionSize)) - PAGE_ROUND_DOWN((*PBaseAddress));