http://bugs.winehq.org/show_bug.cgi?id=60021 Bug ID: 60021 Summary: 32-bit Wine loader segfaults converting Unix executable path when no DOS drive maps it Product: Wine Version: 11.13 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ntdll Assignee: wine-bugs@list.winehq.org Reporter: saverio.pub2@gmail.com Target Milestone: --- Distribution: --- Wine 11.13 crashes in 32-bit ntdll.so when launching a 32-bit executable using an absolute Unix pathname, if no DOS drive mapping covers that path. Environment: - Ubuntu 24.04, amd64 - Wine 11.13, WoW64 prefix - The prefix has no dosdevices/z: mapping - The executable is a PE32 GUI bootstrapper Steps to reproduce: 1. Use a 64-bit/WoW64 prefix without dosdevices/z: (or another drive mapping covering the executable's Unix location). 2. Run a 32-bit executable located outside drive_c: WINEPREFIX=/path/to/prefix wine /some/unmapped/path/application.exe Result: The native 32-bit Wine process terminates with SIGSEGV (exit status 139). The core dump places the fault in the 32-bit ntdll.so pathname conversion code. The input at the time of the crash is the absolute Unix executable pathname. The faulting instruction dereferences a NULL pointer: movzwl (%esi),%edx ESI = 0 Workaround: Creating the standard mapping fixes the crash: ln -s / "$WINEPREFIX/dosdevices/z:" With z: mapped to /, the same executable starts successfully. Expected result: Wine should either convert the path to a \\?\unix path or report that the path cannot be mapped. It should not crash. Mention NTLite only as the real-world application that exposed it: Originally reproduced with the 32-bit bootstrapper contained in NTLite_setup_x64.exe. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.