From 72bd9ef29a089b3a59b2b74a484a53950915bc00 Mon Sep 17 00:00:00 2001 From: Whindmar Saksit Date: Thu, 3 Apr 2025 20:52:53 +0200 Subject: [PATCH] [BROWSEUI] Don't pass the internal PIDL to the shell for processing (#7859) CORE-20063 --- dll/win32/browseui/shellfind/CSearchBar.cpp | 3 +++ dll/win32/shell32/folders/CDesktopFolder.cpp | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/dll/win32/browseui/shellfind/CSearchBar.cpp b/dll/win32/browseui/shellfind/CSearchBar.cpp index 543151394b3..8fb7ae3321b 100644 --- a/dll/win32/browseui/shellfind/CSearchBar.cpp +++ b/dll/win32/browseui/shellfind/CSearchBar.cpp @@ -76,6 +76,9 @@ static BYTE GetSpecial(PCIDLIST_ABSOLUTE pidl) static HRESULT BindToObject(PCIDLIST_ABSOLUTE pidl, REFIID riid, void **ppv) { + if (GetSpecial(pidl)) + return E_FAIL; + PCUITEMID_CHILD pidlChild; CComPtr psf; HRESULT hr = SHBindToParent(pidl, IID_PPV_ARG(IShellFolder, &psf), &pidlChild); diff --git a/dll/win32/shell32/folders/CDesktopFolder.cpp b/dll/win32/shell32/folders/CDesktopFolder.cpp index 3999df2d481..370a614285e 100644 --- a/dll/win32/shell32/folders/CDesktopFolder.cpp +++ b/dll/win32/shell32/folders/CDesktopFolder.cpp @@ -311,9 +311,9 @@ HRESULT CDesktopFolder::_GetSFFromPidl(LPCITEMIDLIST pidl, IShellFolder2** psf) { FIXME("Desktop is unexpected here!\n"); } - else + else if (_ILIsSpecialFolder(pidl)) { - ASSERT(!_ILIsSpecialFolder(pidl)); + FIXME("Unexpected PIDL type %#x\n", pidl->mkid.abID[0]); } #endif IShellFolder *pSF = IsCommonItem(pidl) ? m_SharedDesktopFSFolder : m_DesktopFSFolder;