https://git.reactos.org/?p=reactos.git;a=commitdiff;h=56fdb7adde655af240dc7958f1a9f687093badc7

commit 56fdb7adde655af240dc7958f1a9f687093badc7
Author:     Thomas Faber <[email protected]>
AuthorDate: Sat Mar 3 11:10:37 2018 +0100
Commit:     Thomas Faber <[email protected]>
CommitDate: Sat Mar 3 17:19:26 2018 +0100

    [WIN32K:NTUSER] Handle IntGetSystemMenu failure cases. CORE-12180
---
 win32ss/user/ntuser/nonclient.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/win32ss/user/ntuser/nonclient.c b/win32ss/user/ntuser/nonclient.c
index 1b67b36c77..8c30fa6900 100644
--- a/win32ss/user/ntuser/nonclient.c
+++ b/win32ss/user/ntuser/nonclient.c
@@ -737,7 +737,7 @@ UserDrawCaptionButton(PWND pWnd, LPRECT Rect, DWORD Style, 
DWORD ExStyle, HDC hD
       case DFCS_CAPTIONCLOSE:
       {
           PMENU pSysMenu = IntGetSystemMenu(pWnd, FALSE);
-          UINT MenuState = IntGetMenuState(UserHMGetHandle(pSysMenu), 
SC_CLOSE, MF_BYCOMMAND); /* in case of error MenuState==0xFFFFFFFF */
+          UINT MenuState = IntGetMenuState(pSysMenu ? 
UserHMGetHandle(pSysMenu) : NULL, SC_CLOSE, MF_BYCOMMAND); /* in case of error 
MenuState==0xFFFFFFFF */
 
          /* A tool window has a smaller Close button */
          if (ExStyle & WS_EX_TOOLWINDOW)
@@ -1380,7 +1380,7 @@ NC_DoButton(PWND pWnd, WPARAM wParam, LPARAM lParam)
    {
       case HTCLOSE:
          SysMenu = IntGetSystemMenu(pWnd, FALSE);
-         MenuState = IntGetMenuState(UserHMGetHandle(SysMenu), SC_CLOSE, 
MF_BYCOMMAND); /* in case of error MenuState==0xFFFFFFFF */
+         MenuState = IntGetMenuState(SysMenu ? UserHMGetHandle(SysMenu) : 
NULL, SC_CLOSE, MF_BYCOMMAND); /* in case of error MenuState==0xFFFFFFFF */
          if (!(Style & WS_SYSMENU) || (MenuState & (MF_GRAYED|MF_DISABLED)) || 
(pWnd->style & CS_NOCLOSE))
             return;
          ButtonType = DFCS_CAPTIONCLOSE;
@@ -1554,7 +1554,7 @@ NC_HandleNCLButtonDblClk(PWND pWnd, WPARAM wParam, LPARAM 
lParam)
     case HTSYSMENU:
     {
       PMENU SysMenu = IntGetSystemMenu(pWnd, FALSE);
-      UINT state = IntGetMenuState(UserHMGetHandle(SysMenu), SC_CLOSE, 
MF_BYCOMMAND);
+      UINT state = IntGetMenuState(SysMenu ? UserHMGetHandle(SysMenu) : NULL, 
SC_CLOSE, MF_BYCOMMAND);
                   
       /* If the close item of the sysmenu is disabled or not present do 
nothing */
       if ((state & (MF_DISABLED | MF_GRAYED)) || (state == 0xFFFFFFFF))

Reply via email to