[0.4.9][WIN32K:NTUSER] Fix WIN32K BSOD mentioned in CORE-15027
authorJoachim Henze <Joachim.Henze@reactos.org>
Thu, 3 Dec 2020 00:01:33 +0000 (01:01 +0100)
committerJoachim Henze <Joachim.Henze@reactos.org>
Thu, 3 Dec 2020 00:01:33 +0000 (01:01 +0100)
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

fix picked from 0.4.11-dev-195-g ef016bfe0a9dc3cc7924671277b44884e39d89d5

win32ss/user/ntuser/menu.c

index 7d84be5..7b4ba1e 100644 (file)
@@ -5185,7 +5185,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;