https://bugs.winehq.org/show_bug.cgi?id=56061
Bernhard Übelacker bernhardu@mailbox.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bernhardu@mailbox.org
--- Comment #10 from Bernhard Übelacker bernhardu@mailbox.org --- The issue seems to be a pointer truncation in NSIS script code. There is one call to GlobalAlloc that returns an address above 32-bits. But a call to EnumProcesses receives as first parameter just the lower 32-bits of this previously allocated address, and crashes when accessing it.
A past bug #55833 showed a similar picture. Unfortunately foobar2000-x64_v2.1.exe shows HIGH_ENTROPY_VA, DYNAMIC_BASE and "large address aware", so I would expect it to receive high addresses in windows too. (x86_64-w64-mingw32-objdump -p foobar2000-x64_v2.1.exe)
Also 7z refused to extract the NSIS script for inspection.
Following modification makes as a workaround wine return just low addresses, which make the installer work:
dlls/ntdll/unix/virtual.c @@ -4432,3 +4432,3 @@ void virtual_set_large_address_space(void) (main_image_info.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE)) - free_reserved_memory( 0, (char *)0x7ffe0000 ); + if (0) free_reserved_memory( 0, (char *)0x7ffe0000 ); #endif