[Bug 32695] Yahoo Messenger login crashes on unimplemented function nspr4.dll.PR_SetCurrentThreadName (messenger provided 'nspr4.dll' ABI incompatible with Wine Gecko)

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Oct 26 07:50:39 CDT 2014


https://bugs.winehq.org/show_bug.cgi?id=32695

--- Comment #8 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

it's unfortunate that they use their own Gecko engine version *and* mshtml
browser embedding which pulls in Wine Gecko.

Wine: v4.10 of Netscape Portable Runtime
Yahoo Messenger: v4.8.3.0 of Netscape Portable Runtime

Two incompatible sets of runtime dlls are not supposed to be mapped into same
address space nor can be safely replaced by either provider.

--- snip ---
...
0032:Call KERNEL32.LoadLibraryExW(0033b32e
L"C:\\windows\\system32\\mshtml.dll",00000000,00000008) ret=7e6d688c 
...
0032:trace:module:process_attach (L"mshtml.dll",(nil)) - END
0032:Ret  KERNEL32.LoadLibraryExW() retval=7a870000 ret=7e6d688c
...
0032:Call KERNEL32.LoadLibraryExW(0033b02c
L"C:\\windows\\system32\\gecko\\2.24\\wine_gecko\\\\xul.dll",00000000,00000008)
ret=7a925d0c
0032:trace:module:load_dll looking for
L"C:\\windows\\system32\\gecko\\2.24\\wine_gecko\\\\xul.dll" in
L"C:\\windows\\system32\\gecko\\2.24\\wine_gecko\\;.;C:\\windows\\system32;C:\\windows\\system;C:\\windows;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem;C:\\windows\\system32\\gecko\\2.24\\wine_gecko\\"
0032:trace:module:get_load_order looking for
L"C:\\windows\\system32\\gecko\\2.24\\wine_gecko\\xul.dll"
0032:trace:module:get_load_order got hardcoded default for
L"C:\\windows\\system32\\gecko\\2.24\\wine_gecko\\xul.dll"
0032:trace:module:load_builtin_dll Trying built-in
L"C:\\windows\\system32\\gecko\\2.24\\wine_gecko\\xul.dll"
...
0032:trace:module:load_native_dll Trying native dll
L"C:\\windows\\system32\\gecko\\2.24\\wine_gecko\\xul.dll"
0032:trace:module:map_image mapped PE file at 0x69c40000-0x6b82b000
...
0032:trace:module:load_dll looking for L"mozglue.dll" in
L"C:\\windows\\system32\\gecko\\2.24\\wine_gecko\\;.;C:\\windows\\system32;C:\\windows\\system;C:\\windows;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem;C:\\windows\\system32\\gecko\\2.24\\wine_gecko\\"
0032:trace:module:load_dll Found
L"C:\\windows\\system32\\gecko\\2.24\\wine_gecko\\mozglue.dll" for
L"mozglue.dll" at 0x65fc0000, count=2
...
0032:trace:module:get_load_order looking for
L"C:\\windows\\system32\\gecko\\2.24\\wine_gecko\\mozjs.dll"
0032:trace:module:get_load_order got hardcoded default for
L"C:\\windows\\system32\\gecko\\2.24\\wine_gecko\\mozjs.dll"
0032:trace:module:load_builtin_dll Trying built-in
L"C:\\windows\\system32\\gecko\\2.24\\wine_gecko\\mozjs.dll"
...
0032:trace:module:load_native_dll Trying native dll
L"C:\\windows\\system32\\gecko\\2.24\\wine_gecko\\mozjs.dll"
...
0032:warn:module:alloc_module disabling no-exec because of L"mozjs.dll" 
...
0032:trace:module:load_dll looking for L"nspr4.dll" in
L"C:\\windows\\system32\\gecko\\2.24\\wine_gecko\\;.;C:\\windows\\system32;C:\\windows\\system;C:\\windows;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem;C:\\windows\\system32\\gecko\\2.24\\wine_gecko\\"
0032:trace:module:load_dll Found L"C:\\Program
Files\\Yahoo!\\Messenger\\nspr4.dll" for L"nspr4.dll" at 0x60590000, count=-1
0032:warn:module:import_dll No implementation for
nspr4.dll.PR_SetCurrentThreadName imported from
L"C:\\windows\\system32\\gecko\\2.24\\wine_gecko\\mozjs.dll", setting to
0x32e0000
...
--- snip ---

If you replace the Yahoo provided one with the newer Wine Gecko runtime, you
can work around the missing 'nspr4.dll.PR_SetCurrentThreadName' entry point but
the Yahoo framework *relies* on unicode API present (MOZ_UNICODE).

Example:

--- snip ---
Backtrace:
=>0 0x7bc5231b stub_entry_point+0x4b(dll="nspr4.dll", name="PR_OpenFileUTF16",
ret_addr=0x6128318e)
[/home/focht/projects/wine/wine.repo/src/dlls/ntdll/loader.c:209] in ntdll
(0x0033f4b8)
  1 0x040f000f (0x0033f5c0)
  2 0x60a81388 in ycpfoundation (+0x91387) (0x60a81398)
  3 0x60aaa7ac in ycpfoundation (+0xba7ab) (0x60a06cc0)
--- snip ---

Wine's Gecko obviously didn't have this compiled in.

But even then, you would need to replace the Yahoo provided runtime dlls with
what Wine provides at the risk of breaking the app relying on old API
behaviour.

IMHO a WONTFIX.

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