[Bug 46995] New: Rekordbox 5.3.0 installer (32-bit process under WoW64) fails to load 32-bit code dlls with WoW64 filesystem redirection disabled
wine-bugs at winehq.org
wine-bugs at winehq.org
Fri Apr 12 13:28:52 CDT 2019
https://bugs.winehq.org/show_bug.cgi?id=46995
Bug ID: 46995
Summary: Rekordbox 5.3.0 installer (32-bit process under WoW64)
fails to load 32-bit code dlls with WoW64 filesystem
redirection disabled
Product: Wine
Version: 4.5
Hardware: x86-64
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: ntdll
Assignee: wine-bugs at winehq.org
Reporter: focht at gmx.net
Distribution: ---
Hello folks,
encountered this while investigating bug 45543 (different issue).
The 32-bit installer (for 64-bit app) does a somewhat questionable thing:
--- snip ---
$ WINEDEBUG=+seh,+relay,+loaddll,+module wine ./Install_rekordbox_x64_5_3_0.exe
>>log.txt 2>&1
...
0059:Call KERNEL32.LoadLibraryExW(0040f0d0
L"C:\\users\\focht\\Temp\\nsqb4a0.tmp\\System.dll",00000000,00000008)
ret=00402433
...
0059:trace:module:process_attach (L"System.dll",(nil)) - START
0059:Call PE DLL (proc=0x10002728,module=0x10000000
L"System.dll",reason=PROCESS_ATTACH,res=(nil))
0059:Call KERNEL32.VirtualProtect(10004020,00000004,00000040,10004028)
ret=1000274c
0059:Ret KERNEL32.VirtualProtect() retval=00000001 ret=1000274c
0059:Ret PE DLL (proc=0x10002728,module=0x10000000
L"System.dll",reason=PROCESS_ATTACH,res=(nil)) retval=1
0059:trace:module:process_attach (L"System.dll",(nil)) - END
0059:Ret KERNEL32.LoadLibraryExW() retval=10000000 ret=00402433
...
0059:Call KERNEL32.GetProcAddress(10000000,0016fc70 "Call") ret=004064fc
0059:Ret KERNEL32.GetProcAddress() retval=10002a4f ret=004064fc
...
0059:Call KERNEL32.lstrcpyW(00177c90,0016bc24
L"kernel32::Wow64EnableWow64FsRedirection(i0)") ret=100015c7
0059:Ret KERNEL32.lstrcpyW() retval=00177c90 ret=100015c7
...
0059:Call KERNEL32.Wow64EnableWow64FsRedirection(00000000) ret=1000130d
0059:Ret KERNEL32.Wow64EnableWow64FsRedirection() retval=00000001 ret=1000130d
...
0059:Call KERNEL32.IsWow64Process(ffffffff,0015c9d0) ret=1000130d
0059:Ret KERNEL32.IsWow64Process() retval=00000001 ret=1000130d
...
0059:Call KERNEL32.LoadLibraryW(0040941c L"RichEd20") ret=00405d04
0059:trace:module:load_dll looking for L"RichEd20" in
L"Z:\\home\\focht\\Downloads;C:\\windows\\system32;C:\\windows\\system;C:\\windows;.;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem"
0059:trace:module:map_image mapped PE file at 0x390000-0x3a3000
0059:trace:module:map_image mapping section .text at 0x391000 off 200 size 5
virt 1000 flags 60000020
...
0059:trace:module:open_dll_file L"\\??\\C:\\windows\\system32\\RichEd20.dll" is
for arch 8664, continuing search
0059:trace:module:map_image mapped PE file at 0x390000-0x3a3000
0059:trace:module:map_image mapping section .text at 0x391000 off 200 size 5
virt 1000 flags 60000020
...
0059:trace:module:open_dll_file L"\\??\\C:\\windows\\system32\\RichEd20.dll" is
for arch 8664, continuing search
0059:warn:module:load_dll Failed to load module L"RichEd20"; status=c000007b
0059:Ret KERNEL32.LoadLibraryW() retval=00000000 ret=00405d04
0059:Call KERNEL32.LoadLibraryW(00409408 L"RichEd32") ret=00405d0f
0059:trace:module:load_dll looking for L"RichEd32" in
L"Z:\\home\\focht\\Downloads;C:\\windows\\system32;C:\\windows\\system;C:\\windows;.;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem"
0059:trace:module:map_image mapped PE file at 0x370000-0x374000
0059:trace:module:map_image mapping section .text at 0x371000 off 200 size 5
virt 1000 flags 60000020
...
0059:trace:module:open_dll_file L"\\??\\C:\\windows\\system32\\RichEd32.dll" is
for arch 8664, continuing search
0059:trace:module:map_image mapped PE file at 0x370000-0x374000
0059:trace:module:map_image mapping section .text at 0x371000 off 200 size 5
virt 1000 flags 60000020
...
0059:trace:module:open_dll_file L"\\??\\C:\\windows\\system32\\RichEd32.dll" is
for arch 8664, continuing search
0059:warn:module:load_dll Failed to load module L"RichEd32"; status=c000007b
0059:Ret KERNEL32.LoadLibraryW() retval=00000000 ret=00405d0f
..
0059:Call KERNEL32.LoadLibraryExW(0040f0d0
L"C:\\users\\focht\\Temp\\nsqb4a0.tmp\\InstallOptions.dll",00000000,00000008)
ret=00402433
...
0059:trace:module:load_native_dll Trying native dll
L"\\??\\C:\\users\\focht\\Temp\\nsqb4a0.tmp\\InstallOptions.dll"
0059:trace:module:perform_relocations relocating from 0x10000000-0x1000b000 to
0x3b0000-0x3bb000
...
0059:trace:module:map_image mapped PE file at 0x1d90000-0x1e38000
0059:trace:module:map_image mapping section .text at 0x1d91000 off 200 size 5
virt 1000 flags 60000020
...
0059:trace:module:open_dll_file L"\\??\\C:\\windows\\system32\\COMDLG32.dll" is
for arch 8664, continuing search
0059:trace:module:map_image mapped PE file at 0x1d90000-0x1e38000
0059:trace:module:map_image mapping section .text at 0x1d91000 off 200 size 5
virt 1000 flags 60000020
...
0059:trace:module:open_dll_file L"\\??\\C:\\windows\\system32\\COMDLG32.dll" is
for arch 8664, continuing search
0059:warn:module:load_dll Failed to load module L"COMDLG32.dll";
status=c000007b
0059:err:module:import_dll Loading library COMDLG32.dll (which is needed by
L"C:\\users\\focht\\Temp\\nsqb4a0.tmp\\InstallOptions.dll") failed (error
c000007b).
0059:trace:module:load_dll looking for L"ole32.dll" in
L"C:\\users\\focht\\Temp\\nsqb4a0.tmp;C:\\windows\\system32;C:\\windows\\system;C:\\windows;.;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem"
0059:trace:module:load_dll Found L"C:\\windows\\system32\\ole32.dll" for
L"ole32.dll" at 0x7da20000, count=-1
0059:warn:module:load_dll Failed to load module
L"C:\\users\\focht\\Temp\\nsqb4a0.tmp\\InstallOptions.dll"; status=c0000135
0059:Ret KERNEL32.LoadLibraryExW() retval=00000000 ret=00402433
...
0059:Call user32.SetWindowTextW(000200a6,0043b238 L"Could not load:
C:\\users\\focht\\Temp\\nsqb4a0.tmp\\InstallOptions.dll") ret=00405145
...
--- snip ---
The 32-bit installer explicitly disables WoW64 file system redirection in main
thread -> 'Wow64EnableWow64FsRedirection(FALSE)' and tries to load 32-bit
dependencies dynamically which obviously fails. I double checked everything,
there is no restore in between.
NOTE: On other threads it correctly disables and restores redirection which
works fine (not shown here).
The failure is not critical for overall installer run but I assume this somehow
works in 64-bit Windows (32-bit process under WoW64). Unfortunately I couldn't
find any reasonable explanation/documentation for this behaviour. Maybe some
Microsoft workaround for broken apps/installers?
$ sha1sum Install_rekordbox_x64_5_3_0.exe
f5e5dfbbef3997d8cb2cca9e1412765bf91398b2 Install_rekordbox_x64_5_3_0.exe
$ du -sh Install_rekordbox_x64_5_3_0.exe
228M Install_rekordbox_x64_5_3_0.exe
$ wine --version
wine-4.5-369-g9e80dc925e
Regards
--
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.
More information about the wine-bugs
mailing list