From d92d9bc2a9c2fa097beb7c420b7e0229760f365c Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 29 Sep 2023 18:41:29 +0200 Subject: [PATCH] ntdll: Don't free reserved memory on 64-bit macOS. It's part of the zerofill section. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55674 --- dlls/ntdll/unix/virtual.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c index 3784cb6c16a..f027c0e4b85 100644 --- a/dlls/ntdll/unix/virtual.c +++ b/dlls/ntdll/unix/virtual.c @@ -4161,15 +4161,20 @@ static void virtual_release_address_space(void) */ void virtual_set_large_address_space(void) { -#ifdef _WIN64 - if (is_wow64()) - user_space_wow_limit = ((main_image_info.ImageCharacteristics & IMAGE_FILE_LARGE_ADDRESS_AWARE) ? limit_4g : limit_2g) - 1; - else - free_reserved_memory( 0, (char *)0x7ffe0000 ); -#else - if (!(main_image_info.ImageCharacteristics & IMAGE_FILE_LARGE_ADDRESS_AWARE)) return; - free_reserved_memory( (char *)0x80000000, address_space_limit ); + if (is_win64) + { + if (is_wow64()) + user_space_wow_limit = ((main_image_info.ImageCharacteristics & IMAGE_FILE_LARGE_ADDRESS_AWARE) ? limit_4g : limit_2g) - 1; +#ifndef __APPLE__ /* don't free the zerofill section on macOS */ + else + free_reserved_memory( 0, (char *)0x7ffe0000 ); #endif + } + else + { + if (!(main_image_info.ImageCharacteristics & IMAGE_FILE_LARGE_ADDRESS_AWARE)) return; + free_reserved_memory( (char *)0x80000000, address_space_limit ); + } user_space_limit = working_set_limit = address_space_limit; }