https://bugs.winehq.org/show_bug.cgi?id=46303
Bug ID: 46303 Summary: Warcraft 3: Reign of Chaos can't be installed from CD Product: Wine Version: 4.0-rc2 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: wylda@volny.cz Distribution: ---
Created attachment 63027 --> https://bugs.winehq.org/attachment.cgi?id=63027 crashlog
Installer of "Warcraft III Reign of Chaos" let me enter serial key and choose install dir. After i choose the directory, installer crashes.
It happen to me with wine-4.0-rc2 .. wine-1.9.10. Based on bug 36030 it happens also in wine-1.7.17 (wine-1.7.2 could be OK). I'll try to find that commit, but i have hard time with anything less then 1.9.10 (probably i will need to switch to older distro).
https://bugs.winehq.org/show_bug.cgi?id=46303
Wylda wylda@volny.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression Distribution|--- |Debian
https://bugs.winehq.org/show_bug.cgi?id=46303
--- Comment #1 from Wylda wylda@volny.cz ---
Still present in wine-4.0-rc5.
https://bugs.winehq.org/show_bug.cgi?id=46303
Wylda wylda@volny.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|4.0-rc2 |1.7.15 CC| |piotr.caban@gmail.com Component|-unknown |msvcrt Keywords| |Installer Regression SHA1| |28cc0b8bc15e78a66fe2ea6692c | |d08ba843aa8db
--- Comment #2 from Wylda wylda@volny.cz ---
The crash was introduced in wine-1.7.14-92-g28cc0b8:
commit 28cc0b8bc15e78a66fe2ea6692cd08ba843aa8db Author: Piotr Caban piotr@codeweavers.com Date: Thu Mar 13 14:13:02 2014 +0100
msvcrt: Improve toupper_l implementation.
Reverting of this commit makes the problem go a way.
https://bugs.winehq.org/show_bug.cgi?id=46303
--- Comment #3 from Wylda wylda@volny.cz --- Created attachment 63299 --> https://bugs.winehq.org/attachment.cgi?id=63299 Good vs Bad log for comparison
If that helps, here are two logs attached for comparison.
https://bugs.winehq.org/show_bug.cgi?id=46303
--- Comment #4 from Piotr Caban piotr.caban@gmail.com --- Created attachment 63306 --> https://bugs.winehq.org/attachment.cgi?id=63306 patch that adds debug messages to toupper
Could you please collect an msvcrt,tid,pid log using current wine with attached patch? It adds trace messages to toupper_l function.
https://bugs.winehq.org/show_bug.cgi?id=46303
--- Comment #5 from Wylda wylda@volny.cz ---
Could you please collect an msvcrt,tid,pid log using current wine with attached patch?
Thank you Piotr. Gladly, but i won't attach the log here, as it leaks my private serial number. Please check your gmail's box. Thanks for understanding.
https://bugs.winehq.org/show_bug.cgi?id=46303
--- Comment #6 from Piotr Caban piotr.caban@gmail.com --- The application uses C locale. I've also seen some calls using codepage 1252 in the logs.
The call that is failing is following: 0008:0009:fixme:msvcrt:MSVCRT__toupper_l -23 (nil) 0008:0009:fixme:msvcrt:MSVCRT__toupper_l case 5: 201
https://bugs.winehq.org/show_bug.cgi?id=46303
--- Comment #7 from Wylda wylda@volny.cz ---
The call that is failing is following: 0008:0009:fixme:msvcrt:MSVCRT__toupper_l -23 (nil) 0008:0009:fixme:msvcrt:MSVCRT__toupper_l case 5: 201
Maybe it is already clear to you, but if not and want to see old behavior, what about taking old implementation add FIXME decoration?
BTW: it is Warcraft 3 Czech edition.
https://bugs.winehq.org/show_bug.cgi?id=46303
--- Comment #8 from Wylda wylda@volny.cz --- Created attachment 63307 --> https://bugs.winehq.org/attachment.cgi?id=63307 Warcraft 3 CZ
I just played with ascii table and translated last word before crash.
Could that last letter be "á":
Technická
...because i found installer's submenu showing this word.
https://bugs.winehq.org/show_bug.cgi?id=46303
Wylda wylda@volny.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Warcraft 3: Reign of Chaos |Warcraft 3: Reign of Chaos |can't be installed from CD |(Czech language) can't be | |installed from CD
--- Comment #9 from Wylda wylda@volny.cz ---
The old version works (reverted patch + added FIXME decoration):
Dec: 87 Char: W Locale: (nil) case 1: Dec: 87 Char: W Dec: 87 Char: W Locale: (nil) case 1: Dec: 87 Char: W Dec: 87 Char: W Locale: (nil) case 1: Dec: 87 Char: W Dec: 32 Char: Locale: (nil) case 1: Dec: 32 Char: Dec: 84 Char: T Locale: (nil) case 1: Dec: 84 Char: T Dec: 101 Char: e Locale: (nil) case 1: Dec: 69 Char: E Dec: 99 Char: c Locale: (nil) case 1: Dec: 67 Char: C Dec: 104 Char: h Locale: (nil) case 1: Dec: 72 Char: H Dec: 110 Char: n Locale: (nil) case 1: Dec: 78 Char: N Dec: 105 Char: i Locale: (nil) case 1: Dec: 73 Char: I Dec: 99 Char: c Locale: (nil) case 1: Dec: 67 Char: C Dec: 107 Char: k Locale: (nil) case 1: Dec: 75 Char: K Dec: -23 Char: é Locale: (nil) case 1: Dec: 241 Char: ñ Dec: 32 Char: Locale: (nil) case 1: Dec: 32 Char: Dec: 112 Char: p Locale: (nil) case 1: Dec: 80 Char: P Dec: 111 Char: o Locale: (nil) case 1: Dec: 79 Char: O Dec: 100 Char: d Locale: (nil) case 1: Dec: 68 Char: D Dec: 112 Char: p Locale: (nil) case 1: Dec: 80 Char: P Dec: 111 Char: o Locale: (nil) case 1: Dec: 79 Char: O Dec: 114 Char: r Locale: (nil) case 1: Dec: 82 Char: R Dec: 121 Char: y Locale: (nil) case 1: Dec: 89 Char: Y Dec: 46 Char: . Locale: (nil) case 1: Dec: 46 Char: . Dec: 117 Char: u Locale: (nil) case 1: Dec: 85 Char: U Dec: 114 Char: r Locale: (nil) case 1: Dec: 82 Char: R Dec: 108 Char: l Locale: (nil) case 1: Dec: 76 Char: L
So in comment 8 i guessed that value incorrectly ('é' vs 'á').
https://bugs.winehq.org/show_bug.cgi?id=46303
--- Comment #10 from Piotr Caban piotr.caban@gmail.com --- We have already tests showing this problem in wine. I'll work on a fix but I'm afraid the change will be to risky to include in Wine 4.0.
In native msvc* dlls some functions behave differently when locale was never set (or there was only setlocale(X, "C") call). In case of toupper only characters from a...z range should be modified.
Side note: The result returned by toupper in "working" case is incorrect but the application happens to work with it.
tolower tests with "initial" locale: https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/msvcrt/tests/string.c...
https://bugs.winehq.org/show_bug.cgi?id=46303
--- Comment #11 from Piotr Caban piotr.caban@gmail.com --- Created attachment 63310 --> https://bugs.winehq.org/attachment.cgi?id=63310 toupper fix
I'm attaching patches that should fix the bug. I'm planning to get them into wine after the code-freeze.
https://bugs.winehq.org/show_bug.cgi?id=46303
Wylda wylda@volny.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
--- Comment #12 from Wylda wylda@volny.cz ---
I'm attaching patches that should fix the bug...
Yes, it fixes the bug. Thank you!
https://bugs.winehq.org/show_bug.cgi?id=46303
Piotr Caban piotr.caban@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |688671763154c569b286567810d | |2e0ed3341dbac Resolution|--- |FIXED Status|NEW |RESOLVED
--- Comment #13 from Piotr Caban piotr.caban@gmail.com --- The patches are in wine. Marking as fixed.
https://bugs.winehq.org/show_bug.cgi?id=46303
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #14 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 4.1.
https://bugs.winehq.org/show_bug.cgi?id=46303
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |4.0.x
https://bugs.winehq.org/show_bug.cgi?id=46303
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|4.0.x |---
--- Comment #15 from Michael Stefaniuc mstefani@winehq.org --- Removing the 4.0.x milestone from bug fixes included in 4.0.1.