http://bugs.winehq.org/show_bug.cgi?id=24019
Summary: League of Legends downloader crashes because FormatMessage doesn't have a message for WSAECONNREFUSED Product: Wine Version: 1.3.0 Platform: x86 URL: http://l3cdn.riotgames.com/Installer/ProdSource.06_29_ 2010/LeagueofLegends.exe OS/Version: Linux Status: NEW Keywords: download, Installer Severity: normal Priority: P2 Component: kernel32 AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com
Pando-based installers, like the League of Legends downloader explode on startup.
The first two problems are bug 22157 ( workaround: export GC_DONT_GC=1 ) and bug 24017 ( workaround: apply patch attached to bug 24017 that implements reg query). Once you've worked around those, the installer still crashes, but this time it says Log file is being written to C:\users\dank\Temp\LeagueofLegends.exe.log before exploding. That file ends with
8/15/2010 23:14:00.21:Installer:D:Connection failed.Exception java.lang.NullPointerException:null 8/15/2010 23:14:00.21:Installer:D:diskToken is empty. PMB is probably down 8/15/2010 23:14:00.21:Installer:D:About to execute http://127.0.0.1:60524/rest/shutdown?format=xml
The +relay log shows
0027:Call ws2_32.connect(00000104,02dce298,00000010) ret=007ca2d9 ... 0027:Ret ws2_32.connect() retval=ffffffff ret=007ca2d9 0027:Call ws2_32.WSAGetLastError() ret=007ca11b 0027:Ret ws2_32.WSAGetLastError() retval=0000274d ret=007ca11b 0027:Call KERNEL32.FormatMessageA(00001300,00000000,0000274d,00000400,02dce1a4,00000000,00000000) ret=006fea27 0027:Ret KERNEL32.FormatMessageA() retval=00000000 ret=006fea27 0027:Call ntdll.strlen(00000000) ret=006fe5b4 trace:seh:raise_exception code=c0000005 flags=0 addr=0xb753cf93 ip=b753cf93 tid=0027
So it tries to format an error message for WSAECONNREFUSED, fails, and crashes. The attached patch adds the error message to kernel32, which lets the app get on to the next problem (PMB.EXE needs about 270 exports from MSVCP90).
I guess we need to expand kernel32's error message table to handle winsock errors.