shell32: Reject NULL path in IShellLink_SetPath.
This commit is contained in:
parent
fffb41f6a6
commit
6b107c7f62
|
@ -1651,6 +1651,8 @@ static HRESULT WINAPI IShellLinkA_fnSetPath(IShellLinkA * iface, LPCSTR pszFile)
|
|||
|
||||
TRACE("(%p)->(path=%s)\n",This, pszFile);
|
||||
|
||||
if (!pszFile) return E_INVALIDARG;
|
||||
|
||||
str = HEAP_strdupAtoW(GetProcessHeap(), 0, pszFile);
|
||||
if( !str )
|
||||
return E_OUTOFMEMORY;
|
||||
|
@ -2168,6 +2170,8 @@ static HRESULT WINAPI IShellLinkW_fnSetPath(IShellLinkW * iface, LPCWSTR pszFile
|
|||
|
||||
TRACE("(%p)->(path=%s)\n",This, debugstr_w(pszFile));
|
||||
|
||||
if (!pszFile) return E_INVALIDARG;
|
||||
|
||||
/* quotes at the ends of the string are stripped */
|
||||
len = lstrlenW(pszFile);
|
||||
if (pszFile[0] == '"' && pszFile[len-1] == '"')
|
||||
|
|
|
@ -156,6 +156,9 @@ static void test_get_set(void)
|
|||
ok(SUCCEEDED(r), "GetPath failed (0x%08x)\n", r);
|
||||
ok(*buffer=='\0', "GetPath returned '%s'\n", buffer);
|
||||
|
||||
r = IShellLinkA_SetPath(sl, NULL);
|
||||
ok(r==E_INVALIDARG, "SetPath failed (0x%08x)\n", r);
|
||||
|
||||
r = IShellLinkA_SetPath(sl, "");
|
||||
ok(r==S_OK, "SetPath failed (0x%08x)\n", r);
|
||||
|
||||
|
@ -700,6 +703,9 @@ static void test_datalink(void)
|
|||
ok( r == E_FAIL, "CopyDataBlock failed\n");
|
||||
ok( dar == NULL, "should be null\n");
|
||||
|
||||
r = IShellLinkW_SetPath(sl, NULL);
|
||||
ok(r == E_INVALIDARG, "set path failed\n");
|
||||
|
||||
r = IShellLinkW_SetPath(sl, lnk);
|
||||
ok(r == S_OK, "set path failed\n");
|
||||
|
||||
|
|
Loading…
Reference in New Issue