Thomas Faber : user32: Handle HeapReAlloc failure in RemoveMenu.
Alexandre Julliard
julliard at winehq.org
Mon Feb 5 16:48:25 CST 2018
Module: wine
Branch: master
Commit: 7ee4588c0a919e28d1e29baaf327c8492c89b1e2
URL: https://source.winehq.org/git/wine.git/?a=commit;h=7ee4588c0a919e28d1e29baaf327c8492c89b1e2
Author: Thomas Faber <thomas.faber at reactos.org>
Date: Sat Feb 3 10:47:01 2018 +0100
user32: Handle HeapReAlloc failure in RemoveMenu.
The array size is being decreased so failure is not critical here, but
it can still happen, e.g. when DPH is in use.
Signed-off-by: Thomas Faber <thomas.faber at reactos.org>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/user32/menu.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/user32/menu.c b/dlls/user32/menu.c
index 38deaef..f4194ed 100644
--- a/dlls/user32/menu.c
+++ b/dlls/user32/menu.c
@@ -3989,14 +3989,16 @@ BOOL WINAPI RemoveMenu( HMENU hMenu, UINT nPos, UINT wFlags )
}
else
{
+ MENUITEM *new_items;
while(nPos < menu->nItems)
{
*item = *(item+1);
item++;
nPos++;
}
- menu->items = HeapReAlloc( GetProcessHeap(), 0, menu->items,
- menu->nItems * sizeof(MENUITEM) );
+ new_items = HeapReAlloc( GetProcessHeap(), 0, menu->items,
+ menu->nItems * sizeof(MENUITEM) );
+ if (new_items) menu->items = new_items;
}
return TRUE;
}
More information about the wine-cvs
mailing list