From: Rémi Bernon rbernon@codeweavers.com
--- dlls/ntdll/unix/virtual.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c index 9964f69cc06..278800021af 100644 --- a/dlls/ntdll/unix/virtual.c +++ b/dlls/ntdll/unix/virtual.c @@ -5070,10 +5070,10 @@ NTSTATUS virtual_alloc_teb( TEB **ret_teb ) { if (!teb_block_pos) { + UINT_PTR limit = get_zero_bits_limit( user_space_wow_limit ); SIZE_T total = 32 * block_size;
- if ((status = NtAllocateVirtualMemory( NtCurrentProcess(), &ptr, user_space_wow_limit, - &total, MEM_RESERVE, PAGE_READWRITE ))) + if ((status = allocate_virtual_memory( &ptr, &total, MEM_RESERVE, PAGE_READWRITE, 0, limit, 0, 0 ))) { server_leave_uninterrupted_section( &virtual_mutex, &sigset ); return status; @@ -5082,8 +5082,7 @@ NTSTATUS virtual_alloc_teb( TEB **ret_teb ) teb_block_pos = 32; } ptr = ((char *)teb_block + --teb_block_pos * block_size); - NtAllocateVirtualMemory( NtCurrentProcess(), (void **)&ptr, 0, &block_size, - MEM_COMMIT, PAGE_READWRITE ); + allocate_virtual_memory( &ptr, &block_size, MEM_COMMIT, PAGE_READWRITE, 0, 0, 0, 0 ); } *ret_teb = teb = init_teb( ptr, is_wow64() ); server_leave_uninterrupted_section( &virtual_mutex, &sigset );