GNOME Bugzilla – Bug 689235
Broken function declarations corrupt the stack on windows
Last modified: 2012-12-02 20:51:03 UTC
There are two broken typedefs in gdkwindow-win32.c which cause the stack to become corrupted if you attempt to change the opacity of a window or flash it. More detail in the commit message of the git style patch I've attached.
Created attachment 230109 [details] [review] Patch containing the fix.
Review of attachment 230109 [details] [review]: Looks good to me, thanks!
Oh, missed that FlashWindowEx is only available starting with XP. We might want to be careful with that one as we still claim to support Windows 2000 (even though the whole stack hasn't worked for ages on it and nobody complained much, see bug #637565)
Created attachment 230166 [details] [review] A less intrusive approach to fixing the same issue This is a less intrusive fix. It simply fixes the typedef declarations. This should be commitable as-is as it doesn't change minimum versions of windows. Realistically I'd say supporting anything older than Win XP (11.5 years old!) for new builds isn't going to benefit anyone, so I'd be all up for bumping the min supported version of windows to XP SP3 too.
Thanks, pushed to gtk-2-24, gtk-3-6 and master: commit 149de7162493055b24f2b5643ec11d45b76a4826 Author: Alan McGovern <alan@xamarin.com> Date: Fri Nov 23 15:38:34 2012 -0500 Fix broken function pointer declarations on windows Both flashing a window and setting the window opacity were using incorrect declarations for function pointers. They were missing the WINAPI annotation as defined in windows.h. As a result, the stack could be corrupted when these functions were invoked. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=689235 (cherry picked from commit 5637ef1f97ee46666c97707ed7f6bae459007163) gdk/win32/gdkwindow-win32.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
*** Bug 687157 has been marked as a duplicate of this bug. ***