[SHELL32]

- Correctly handle NULL pidls in CDesktopFolder::CompareIDs and CDrivesFolder::CompareIDs. Based on a patch by Sylvain Deverre.
CORE-10745 #resolve
CORE-10747

svn path=/trunk/; revision=71080
This commit is contained in:
Thomas Faber 2016-03-30 11:11:37 +00:00
parent 510fc325df
commit 113dd2e1e9
2 changed files with 12 additions and 0 deletions

View file

@ -463,6 +463,12 @@ HRESULT WINAPI CDesktopFolder::BindToStorage(
*/
HRESULT WINAPI CDesktopFolder::CompareIDs(LPARAM lParam, PCUIDLIST_RELATIVE pidl1, PCUIDLIST_RELATIVE pidl2)
{
if (!pidl1 || !pidl2)
{
ERR("Got null pidl pointer (%Ix %p %p)!\n", lParam, pidl1, pidl2);
return E_INVALIDARG;
}
if (_ILIsSpecialFolder(pidl1) || _ILIsSpecialFolder(pidl2))
return SHELL32_CompareGuidItems(this, lParam, pidl1, pidl2);

View file

@ -298,6 +298,12 @@ HRESULT WINAPI CDrivesFolder::BindToStorage(PCUIDLIST_RELATIVE pidl, LPBC pbcRes
HRESULT WINAPI CDrivesFolder::CompareIDs(LPARAM lParam, PCUIDLIST_RELATIVE pidl1, PCUIDLIST_RELATIVE pidl2)
{
if (!pidl1 || !pidl2)
{
ERR("Got null pidl pointer (%Ix %p %p)!\n", lParam, pidl1, pidl2);
return E_INVALIDARG;
}
if (_ILIsSpecialFolder(pidl1) || _ILIsSpecialFolder(pidl2))
return SHELL32_CompareGuidItems(this, lParam, pidl1, pidl2);