Module: wine Branch: master Commit: 815b532b6498e54acb30bc918af2301fe1bc5c94 URL: http://source.winehq.org/git/wine.git/?a=commit;h=815b532b6498e54acb30bc918a...
Author: David Hedberg david.hedberg@gmail.com Date: Wed Jul 30 20:43:23 2014 +0200
shell32: Always initialize shellitem to NULL in SHCreateShellItem.
---
dlls/shell32/shellitem.c | 3 ++- dlls/shell32/tests/shlfolder.c | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/dlls/shell32/shellitem.c b/dlls/shell32/shellitem.c index 8236975..06b0783 100644 --- a/dlls/shell32/shellitem.c +++ b/dlls/shell32/shellitem.c @@ -555,6 +555,8 @@ HRESULT WINAPI SHCreateShellItem(LPCITEMIDLIST pidlParent,
TRACE("(%p,%p,%p,%p)\n", pidlParent, psfParent, pidl, ppsi);
+ *ppsi = NULL; + if (!pidl) { return E_INVALIDARG; @@ -604,7 +606,6 @@ HRESULT WINAPI SHCreateShellItem(LPCITEMIDLIST pidlParent, } else { - *ppsi = NULL; ILFree(new_pidl); } return ret; diff --git a/dlls/shell32/tests/shlfolder.c b/dlls/shell32/tests/shlfolder.c index 4e20251..acb3517 100644 --- a/dlls/shell32/tests/shlfolder.c +++ b/dlls/shell32/tests/shlfolder.c @@ -2236,8 +2236,10 @@ static void test_SHCreateShellItem(void)
pidl_abstestfile = pILCombine(pidl_cwd, pidl_testfile);
+ shellitem = (void*)0xdeadbeef; ret = pSHCreateShellItem(NULL, NULL, NULL, &shellitem); ok(ret == E_INVALIDARG, "SHCreateShellItem returned %x\n", ret); + ok(shellitem == 0, "Got %p\n", shellitem);
if (0) /* crashes on Windows XP */ {