[WIN32K:NTUSER] Fix WIN32K BSOD mentioned in CORE-15027
authorJoachim Henze <Joachim.Henze@reactos.org>
Fri, 21 Sep 2018 01:04:31 +0000 (03:04 +0200)
committerJoachim Henze <Joachim.Henze@reactos.org>
Fri, 21 Sep 2018 01:04:31 +0000 (03:04 +0200)
Fixes accessing nullptr / invalid handle in Window->SystemMenu
I could trigger this occasionally when moving Opera 12.18 window
in front of Spotify 1.0.29.92 window.

Fix was:
authored by Thomas Faber (Thank you!)
tested by me
reviewed by James Tabor

win32ss/user/ntuser/menu.c

index 1e29d1d..48d9dcc 100644 (file)
@@ -5181,7 +5181,7 @@ IntGetSystemMenu(PWND Window, BOOL bRevert)
    else
    {
       Menu = Window->SystemMenu ? UserGetMenuObject(Window->SystemMenu) : NULL;
-      if ((!Window->SystemMenu || Menu->fFlags & MNF_SYSDESKMN) && Window->style & WS_SYSMENU)
+      if ((!Menu || Menu->fFlags & MNF_SYSDESKMN) && Window->style & WS_SYSMENU)
       {
          Menu = MENU_GetSystemMenu(Window, NULL);
          Window->SystemMenu = Menu ? UserHMGetHandle(Menu) : NULL;