[ros-diffs] [janderwald] 33361: - check if the requested MenuItem object was really found - makes user32_winetest not crash reactos

janderwald at svn.reactos.org janderwald at svn.reactos.org
Thu May 8 09:46:46 CEST 2008


Author: janderwald
Date: Thu May  8 02:46:46 2008
New Revision: 33361

URL: http://svn.reactos.org/svn/reactos?rev=33361&view=rev
Log:
- check if the requested MenuItem object was really found
- makes user32_winetest not crash reactos

Modified:
    trunk/reactos/subsystems/win32/win32k/ntuser/menu.c

Modified: trunk/reactos/subsystems/win32/win32k/ntuser/menu.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntuser/menu.c?rev=33361&r1=33360&r2=33361&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntuser/menu.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/ntuser/menu.c [iso-8859-1] Thu May  8 02:46:46 2008
@@ -930,7 +930,7 @@
 {
    int pos = (int)uItem;
    PMENU_ITEM MenuItem;
-   PMENU_OBJECT SubMenu;
+   PMENU_OBJECT SubMenu = NULL;
 
    if (MAX_MENU_ITEMS <= MenuObject->MenuInfo.MenuItemCount)
    {
@@ -951,6 +951,13 @@
    {
       pos = IntGetMenuItemByFlag(MenuObject, uItem, MF_BYCOMMAND, &SubMenu, NULL, NULL);
    }
+   if (SubMenu == NULL)
+   {
+       SetLastWin32Error(ERROR_INVALID_PARAMETER);
+       return FALSE;
+   }
+
+
    if (pos < -1)
    {
       pos = -1;



More information about the Ros-diffs mailing list