Commit 54aa6179 authored by Marcus Meissner's avatar Marcus Meissner Committed by Alexandre Julliard

shell32: Handle bad menu handle (Coverity).

parent 9bcb143a
...@@ -869,10 +869,11 @@ HRESULT WINAPI Shell_MergeMenus (HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uI ...@@ -869,10 +869,11 @@ HRESULT WINAPI Shell_MergeMenus (HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uI
hmDst, hmSrc, uInsert, uIDAdjust, uIDAdjustMax, uFlags); hmDst, hmSrc, uInsert, uIDAdjust, uIDAdjustMax, uFlags);
if (!hmDst || !hmSrc) if (!hmDst || !hmSrc)
{ return uIDMax; return uIDMax;
}
nItem = GetMenuItemCount(hmDst); nItem = GetMenuItemCount(hmDst);
if (nItem == -1)
return uIDMax;
if (uInsert >= (UINT)nItem) /* insert position inside menu? */ if (uInsert >= (UINT)nItem) /* insert position inside menu? */
{ {
......
...@@ -2224,6 +2224,17 @@ static void test_unicode(void) ...@@ -2224,6 +2224,17 @@ static void test_unicode(void)
ok(!file_existsW(UNICODE_PATH), "The directory should have been removed\n"); ok(!file_existsW(UNICODE_PATH), "The directory should have been removed\n");
} }
extern HRESULT WINAPI Shell_MergeMenus (HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uIDAdjust, UINT uIDAdjustMax, ULONG uFlags);
static void
test_shlmenu(void) {
HRESULT hres;
hres = Shell_MergeMenus (0, 0, 0x42, 0x4242, 0x424242, 0);
ok (hres == 0x4242, "expected 0x4242 but got %x\n", hres);
hres = Shell_MergeMenus ((HMENU)42, 0, 0x42, 0x4242, 0x424242, 0);
ok (hres == 0x4242, "expected 0x4242 but got %x\n", hres);
}
START_TEST(shlfileop) START_TEST(shlfileop)
{ {
InitFunctionPointers(); InitFunctionPointers();
...@@ -2263,4 +2274,6 @@ START_TEST(shlfileop) ...@@ -2263,4 +2274,6 @@ START_TEST(shlfileop)
clean_after_shfo_tests(); clean_after_shfo_tests();
test_unicode(); test_unicode();
test_shlmenu();
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment