https://bugs.winehq.org/show_bug.cgi?id=56061
Bug ID: 56061 Summary: foobar2000 installer crashes in standard mode Product: Wine Version: 9.0-rc2 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: paregistrase@yahoo.es Distribution: ---
Created attachment 75717 --> https://bugs.winehq.org/attachment.cgi?id=75717 wine backtarce
When trying to install the last foobar2000-x64_v2.1.exe in standard mode the installer crashes.
Attached the wine crash log and the console exit
https://bugs.winehq.org/show_bug.cgi?id=56061
--- Comment #1 from regis paregistrase@yahoo.es --- console exit
user@pc-ubuntu:~$ env WINEPREFIX="/home/user/.wine64_test" /opt/wine-devel/bin/wine uninstaller 007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005 007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005 007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005 007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005 wine: Read access denied for device L"\??\Z:\", FS volume label and serial are not available. 0124:fixme:shell:SHAutoComplete stub wine: Unhandled page fault on write access to 00000000FE9000D0 at address 00006FFFFF466890 (thread 012c), starting debugger... 0134:fixme:dbghelp:elf_search_auxv can't find symbol in module 0134:fixme:dbghelp:elf_search_auxv can't find symbol in module 0134:fixme:dbghelp:elf_search_auxv can't find symbol in module 0134:fixme:dbghelp:elf_search_auxv can't find symbol in module 0134:fixme:dbghelp:elf_search_auxv can't find symbol in module 0134:fixme:dbghelp:elf_search_auxv can't find symbol in module 0134:fixme:dbghelp:elf_search_auxv can't find symbol in module 0134:fixme:dbghelp:elf_search_auxv can't find symbol in module 0134:fixme:dbghelp:elf_search_auxv can't find symbol in module 0134:fixme:dbghelp:elf_search_auxv can't find symbol in module 0134:fixme:dbghelp:elf_search_auxv can't find symbol in module
https://bugs.winehq.org/show_bug.cgi?id=56061
--- Comment #2 from regis paregistrase@yahoo.es --- System information: Wine build: wine-9.0-rc2 Platform: x86_64 (guest: i386) Version: Windows XP Host system: Linux Host version: 6.6.7-x64v2-xanmod1
https://bugs.winehq.org/show_bug.cgi?id=56061
gwarser@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gwarser@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=56061
Vijay Kamuju infyquest@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |infyquest@gmail.com
--- Comment #3 from Vijay Kamuju infyquest@gmail.com --- Please update to 9.0 RC3 and test it again.
https://bugs.winehq.org/show_bug.cgi?id=56061
ax 34noff otaku@rambler.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |otaku@rambler.ru
https://bugs.winehq.org/show_bug.cgi?id=56061
regis paregistrase@yahoo.es changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #75717|0 |1 is obsolete| |
--- Comment #4 from regis paregistrase@yahoo.es --- Created attachment 75759 --> https://bugs.winehq.org/attachment.cgi?id=75759 backtrace Wine build: wine-9.0-rc3
https://bugs.winehq.org/show_bug.cgi?id=56061
--- Comment #5 from regis paregistrase@yahoo.es --- Created attachment 75760 --> https://bugs.winehq.org/attachment.cgi?id=75760 wine-9.0-rc3 console output
https://bugs.winehq.org/show_bug.cgi?id=56061
--- Comment #6 from regis paregistrase@yahoo.es --- Same as rc2
https://bugs.winehq.org/show_bug.cgi?id=56061
regis paregistrase@yahoo.es changed:
What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |Ubuntu CC| |paregistrase@yahoo.es
https://bugs.winehq.org/show_bug.cgi?id=56061
--- Comment #7 from regis paregistrase@yahoo.es --- But with wine-staging 9.0-rc3 it installs just fine
https://bugs.winehq.org/show_bug.cgi?id=56061
--- Comment #8 from regis paregistrase@yahoo.es --- Created attachment 75761 --> https://bugs.winehq.org/attachment.cgi?id=75761 wine-staging 9.0-rc3 console log
https://bugs.winehq.org/show_bug.cgi?id=56061
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #9 from joaopa jeremielapuree@yahoo.fr --- I confirm the problem with vanilla wine ç.0-RC3 Archived link here https://web.archive.org/save/https://www.foobar2000.org/files/foobar2000-x64...
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
https://bugs.winehq.org/show_bug.cgi?id=56061
--- Comment #11 from regis paregistrase@yahoo.es --- Thanks for take a look at it.
Sadly patching and building wine is far above my skills.
Do you think it will be in future versions?
https://bugs.winehq.org/show_bug.cgi?id=56061
--- Comment #12 from Bernhard Übelacker bernhardu@mailbox.org --- To make sure this is an application fault I continued to try to have a look at the nsis script. I got to an extension for ghidra, but unfortunately this did fail too.
But assuming the the 32-bit version of the install might have the same script I tried this with 7-Zip and it worked well. There the following lines can be found, where I guess the "i r7" is the fault, because this provides just the lower 32-bits to the EnumProcesses function: System::Alloc 40000 Pop $7 StrCmp $7 0 label_3322 System::Call "psapi::EnumProcesses(i r7, i 40000, *p .r1) i .r2"
Further I was able to create a minimal installer by following script.nsi, executed inside a 64-bit Debian bookworm:
# apt install nsis # makensis script.nsi Target AMD64-Unicode Outfile "56061_nsis64test.exe" Section System::Alloc 40000 Pop $0 Int64Fmt $1 "%I64x" $0 MessageBox MB_OK "Alloc returned: $0 0x$1" SectionEnd
Such a minimal installer showed in windows always an address below 32-bit, unfortunately in wine always above 32-bit.
https://bugs.winehq.org/show_bug.cgi?id=56061
--- Comment #13 from regis paregistrase@yahoo.es --- Thanks, with the information you've provided, one of the program developers will fix the installer
https://bugs.winehq.org/show_bug.cgi?id=56061
--- Comment #14 from regis paregistrase@yahoo.es --- Problem solved with foobar2000-x64_v2.1.1.exe.
https://bugs.winehq.org/show_bug.cgi?id=56061
regis paregistrase@yahoo.es changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED
--- Comment #15 from regis paregistrase@yahoo.es --- Problem solved with foobar2000-x64_v2.1.1.exe.
https://bugs.winehq.org/show_bug.cgi?id=56061
temp82@luukku.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |temp82@luukku.com
--- Comment #16 from temp82@luukku.com --- (In reply to regis from comment #15)
Problem solved with foobar2000-x64_v2.1.1.exe.
if nothing got fixed in wine, don't mark bugs as fixed,
https://bugs.winehq.org/show_bug.cgi?id=56061
regis paregistrase@yahoo.es changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|FIXED |--- Status|RESOLVED |UNCONFIRMED
--- Comment #17 from regis paregistrase@yahoo.es --- Remove fixed status because the fix doesn't come from wine
https://bugs.winehq.org/show_bug.cgi?id=56061
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED CC| |z.figura12@gmail.com Resolution|--- |NOTOURBUG
--- Comment #18 from Zeb Figura z.figura12@gmail.com --- Marking NOTOURBUG.
https://bugs.winehq.org/show_bug.cgi?id=56061
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #19 from Zeb Figura z.figura12@gmail.com --- And closing.
https://bugs.winehq.org/show_bug.cgi?id=56061
--- Comment #20 from Bernhard Übelacker bernhardu@mailbox.org --- Just for the record, the foobar installer 2.1.1 modified the call by using 'p' instead of 'i': - System::Call "psapi::EnumProcesses(i r7, i 40000, *p .r1) i .r2" + System::Call "psapi::EnumProcesses(p r7, i 40000, *p .r1) i .r2"
https://nsis.sourceforge.io/Docs/System/System.html#callfuncs
The test program from comment #12 still receives in wine pointers above 4GB, while windows seem to detect them and produce just pointers below 4GB. And the now outdated installer foobar2000-x64_v2.1.exe still crashes. Therefore I guess there might still be a bug in wine, but it is unknown how windows detects to use just low addresses for nsis installers.