[PATCH 4/5] kernelbase: Fix VirtualAlloc2() when called with NULL process handle.

Nikolay Sivov nsivov at codeweavers.com
Fri May 20 01:36:53 CDT 2022


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/kernelbase/memory.c        | 1 +
 dlls/kernelbase/tests/process.c | 2 --
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/dlls/kernelbase/memory.c b/dlls/kernelbase/memory.c
index 656569220fa..416d7b52a16 100644
--- a/dlls/kernelbase/memory.c
+++ b/dlls/kernelbase/memory.c
@@ -352,6 +352,7 @@ LPVOID WINAPI DECLSPEC_HOTPATCH VirtualAlloc2( HANDLE process, void *addr, SIZE_
 {
     LPVOID ret = addr;
 
+    if (!process) process = GetCurrentProcess();
     if (!set_ntstatus( NtAllocateVirtualMemoryEx( process, &ret, &size, type, protect, parameters, count )))
         return NULL;
     return ret;
diff --git a/dlls/kernelbase/tests/process.c b/dlls/kernelbase/tests/process.c
index 52c481a59e8..b83a25015b2 100644
--- a/dlls/kernelbase/tests/process.c
+++ b/dlls/kernelbase/tests/process.c
@@ -142,10 +142,8 @@ static void test_VirtualAlloc2(void)
 
     size = 0x80000;
     addr = pVirtualAlloc2(NULL, NULL, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE, NULL, 0);
-    todo_wine
     ok(!!addr, "Failed to allocate, error %lu.\n", GetLastError());
     ret = VirtualFree(addr, 0, MEM_RELEASE);
-    todo_wine
     ok(ret, "Unexpected return value %d, error %lu.\n", ret, GetLastError());
 
     /* Placeholder splitting functionality */
-- 
2.35.1




More information about the wine-devel mailing list