Zhiyi Zhang : shell32: Check This->sPathTarget before calling get_display_name().

Alexandre Julliard julliard at winehq.org
Thu Nov 11 16:01:29 CST 2021


Module: wine
Branch: master
Commit: 681d2dfd9d0f6df0a0f34a751663b43369de85b2
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=681d2dfd9d0f6df0a0f34a751663b43369de85b2

Author: Zhiyi Zhang <zzhang at codeweavers.com>
Date:   Thu Nov 11 17:26:31 2021 +0800

shell32: Check This->sPathTarget before calling get_display_name().

Fix Excel 2010 crashing in get_display_name() when clicking the ribbon bar file tab.
The check was removed in 984f608.

Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/shell32/shfldr_fs.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/dlls/shell32/shfldr_fs.c b/dlls/shell32/shfldr_fs.c
index 64571200493..214b9326342 100644
--- a/dlls/shell32/shfldr_fs.c
+++ b/dlls/shell32/shfldr_fs.c
@@ -867,8 +867,9 @@ IShellFolder_fnGetDisplayNameOf (IShellFolder2 * iface, LPCITEMIDLIST pidl,
         if ((GET_SHGDN_FOR(dwFlags) & SHGDN_FORPARSING) &&
             (GET_SHGDN_RELATION(dwFlags) != SHGDN_INFOLDER))
         {
-            get_display_name( pszPath, This->sPathTarget, pidl,
-                              IsEqualCLSID( This->pclsid, &CLSID_UnixFolder ));
+            if (This->sPathTarget)
+                get_display_name( pszPath, This->sPathTarget, pidl,
+                                  IsEqualCLSID( This->pclsid, &CLSID_UnixFolder ));
         } else {
             /* pidl has to contain exactly one non null SHITEMID */
             hr = E_INVALIDARG;




More information about the wine-cvs mailing list