http://bugs.winehq.org/show_bug.cgi?id=33586
Bug #: 33586 Summary: Incorrect ScaleWindowExtEx() usage crashes wine Product: Wine Version: 1.5.30 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: gdi32 AssignedTo: wine-bugs@winehq.org ReportedBy: t.artem@mailcity.com Classification: Unclassified
#include <windows.h> int main() { HDC dc = CreateCompatibleDC (NULL); SetLayout (dc, LAYOUT_RTL); ScaleWindowExtEx (dc, -2147483647 - 1, -1, 1, 1, NULL); }
winegcc 1.c -lgdi32
./1
Backtrace: =>0 0x7ed145f4 nulldrv_ScaleWindowExtEx+0x64() in gdi32 (0x0032fd88) 1 0x7ed151bb ScaleWindowExtEx+0x6a() in gdi32 (0x0032fdc8) 2 0x7eff7630 main+0x6b() in a.out (0x0032fe08)
http://bugs.winehq.org/show_bug.cgi?id=33586
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |enhancement
--- Comment #1 from Nikolay Sivov bunglehead@gmail.com 2013-05-14 09:48:27 CDT --- This is a purely synthetic example that doesn't actually work on windows too, am I right?
http://bugs.winehq.org/show_bug.cgi?id=33586
--- Comment #2 from Artem S. Tashkinov t.artem@mailcity.com 2013-05-14 10:36:27 CDT --- (In reply to comment #1)
This is a purely synthetic example that doesn't actually work on windows too, am I right?
It causes BSOD in Vista, 7 and 8. ;-)
http://bugs.winehq.org/show_bug.cgi?id=33586
--- Comment #3 from Nikolay Sivov bunglehead@gmail.com 2013-05-14 11:00:29 CDT --- I'm aware of that. I'll probably agree that wine could avoid a crash in this case, if that's what you're thinking, but there's no way to match behaviour until some official patch is released.
http://bugs.winehq.org/show_bug.cgi?id=33586
--- Comment #4 from Bruno Jesus 00cpxxx@gmail.com 2013-05-14 11:11:02 CDT --- Just a note: it instantly crashes XP too. Very convenient way to reset the PC.
http://bugs.winehq.org/show_bug.cgi?id=33586
--- Comment #5 from Artem S. Tashkinov t.artem@mailcity.com 2013-05-14 11:16:36 CDT --- (In reply to comment #3)
I'm aware of that. I'll probably agree that wine could avoid a crash in this case, if that's what you're thinking, but there's no way to match behaviour until some official patch is released.
Yes, I believe Wine either should exit gracefully, ignore this invalid API call or show a message saying that the user is insane. ;-)
http://bugs.winehq.org/show_bug.cgi?id=33586
--- Comment #6 from Artem S. Tashkinov t.artem@mailcity.com 2013-05-14 11:17:23 CDT --- (In reply to comment #4)
Just a note: it instantly crashes XP too. Very convenient way to reset the PC.
Can you attach a compiled binary please?
http://bugs.winehq.org/show_bug.cgi?id=33586
--- Comment #7 from Alexandre Julliard julliard@winehq.org 2013-05-14 11:21:27 CDT --- There's no reason to add checks for things that crash on Windows too.
http://bugs.winehq.org/show_bug.cgi?id=33586
--- Comment #8 from Artem S. Tashkinov t.artem@mailcity.com 2013-05-14 11:36:01 CDT --- (In reply to comment #7)
There's no reason to add checks for things that crash on Windows too.
Actually it's an exploit for Windows. Should exploits work under Wine as well?
http://bugs.winehq.org/show_bug.cgi?id=33586
--- Comment #9 from Alexandre Julliard julliard@winehq.org 2013-05-14 12:45:15 CDT --- (In reply to comment #8)
(In reply to comment #7)
There's no reason to add checks for things that crash on Windows too.
Actually it's an exploit for Windows. Should exploits work under Wine as well?
Sure, if you can show a legitimate application that needs the exploit ;-)
http://bugs.winehq.org/show_bug.cgi?id=33586
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |WONTFIX
--- Comment #10 from Austin English austinenglish@gmail.com 2013-05-14 12:52:10 CDT --- (In reply to comment #9)
(In reply to comment #8)
(In reply to comment #7)
There's no reason to add checks for things that crash on Windows too.
Actually it's an exploit for Windows. Should exploits work under Wine as well?
Sure, if you can show a legitimate application that needs the exploit ;-)
WONTFIX (unless a legit application can be found).
http://bugs.winehq.org/show_bug.cgi?id=33586
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |UNCONFIRMED Resolution|WONTFIX |
--- Comment #11 from Bruno Jesus 00cpxxx@gmail.com 2013-05-14 13:19:02 CDT --- (In reply to comment #6)
(In reply to comment #4)
Just a note: it instantly crashes XP too. Very convenient way to reset the PC.
Can you attach a compiled binary please?
I'd rather not because it could be misinterpreted as a virus. I can send it to your email if you wish, just ask by email.
http://bugs.winehq.org/show_bug.cgi?id=33586
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |WONTFIX
--- Comment #12 from Bruno Jesus 00cpxxx@gmail.com 2013-05-14 13:20:24 CDT --- Oops, sorry for the noise.
http://bugs.winehq.org/show_bug.cgi?id=33586
--- Comment #13 from Artem S. Tashkinov t.artem@mailcity.com 2013-05-14 23:48:35 CDT --- Last time I checked crashes are not the mark of a properly written application - your opinion may be different of course. But upon running this utterly nonsensical instruction Wine at least could exit gracefully IMO - unless you want to get more "invalid" bug reports ;-)
http://bugs.winehq.org/show_bug.cgi?id=33586
Dmitry Timoshkov dmitry@baikal.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #14 from Dmitry Timoshkov dmitry@baikal.ru 2013-05-14 23:59:03 CDT --- (In reply to comment #13)
Last time I checked crashes are not the mark of a properly written application
- your opinion may be different of course. But upon running this utterly
nonsensical instruction Wine at least could exit gracefully IMO - unless you want to get more "invalid" bug reports ;-)
There is no point in exiting gracefully in this case, a user gets what she deserves for running such code.