[PATCH] user32: Always release menu item in EnableMenuItem

Fabian Maurer dark.shadow4 at web.de
Wed Jun 20 15:46:22 CDT 2018


The menu must be release on all code-paths,
else the underlying lock will never be released.

Fixes bug 45355.

Signed-off-by: Fabian Maurer <dark.shadow4 at web.de>
---
 dlls/user32/menu.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/dlls/user32/menu.c b/dlls/user32/menu.c
index 8c541cc4f91..0b1133bbc41 100644
--- a/dlls/user32/menu.c
+++ b/dlls/user32/menu.c
@@ -590,6 +590,7 @@ static POPUPMENU *find_menu_item(HMENU hmenu, UINT id, UINT flags, UINT *pos)
     POPUPMENU *menu;
 
     menu = grab_menu_ptr(hmenu);
+
     if (!menu)
         return NULL;
 
@@ -3763,6 +3764,8 @@ BOOL WINAPI EnableMenuItem( HMENU hMenu, UINT id, UINT wFlags )
             rc.bottom = 0;
             RedrawWindow(hwnd, &rc, 0, RDW_FRAME | RDW_INVALIDATE | RDW_NOCHILDREN);
 	}
+        else
+            release_menu_ptr(menu);
     }
     else
         release_menu_ptr(menu);
-- 
2.17.1




More information about the wine-devel mailing list