Author: tfaber Date: Wed Mar 30 11:11:37 2016 New Revision: 71080
URL: http://svn.reactos.org/svn/reactos?rev=71080&view=rev Log: [SHELL32] - Correctly handle NULL pidls in CDesktopFolder::CompareIDs and CDrivesFolder::CompareIDs. Based on a patch by Sylvain Deverre. CORE-10745 #resolve CORE-10747
Modified: trunk/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp
Modified: trunk/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/folders/C... ============================================================================== --- trunk/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp [iso-8859-1] Wed Mar 30 11:11:37 2016 @@ -463,6 +463,12 @@ */ 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);
Modified: trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/folders/C... ============================================================================== --- trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp [iso-8859-1] Wed Mar 30 11:11:37 2016 @@ -298,6 +298,12 @@
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);