Module: wine Branch: master Commit: 7a7b82880a73e654933b7866e79f3e9a62a565ef URL: https://gitlab.winehq.org/wine/wine/-/commit/7a7b82880a73e654933b7866e79f3e9...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Dec 14 15:43:39 2023 +0100
ntdll: Only free reserved memory for DYNAMIC_BASE binaries.
To avoid triggering more pointer-truncation bugs in applications.
---
dlls/ntdll/unix/virtual.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c index 5bdeef4c1bc..e805c349eac 100644 --- a/dlls/ntdll/unix/virtual.c +++ b/dlls/ntdll/unix/virtual.c @@ -4397,7 +4397,8 @@ void virtual_set_large_address_space(void) 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 if (main_image_info.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA) + else if ((main_image_info.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA) && + (main_image_info.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE)) free_reserved_memory( 0, (char *)0x7ffe0000 ); #endif }