From a9c889055b7219342127afb29fd047241dfb3f66 Mon Sep 17 00:00:00 2001
From: Gerard Patel <gerard.patel@asi.fr>
Date: Sat, 10 Mar 2001 19:13:59 +0000
Subject: [PATCH] Handle empty strings and invalid values in lpstrInitialDir
 for 32 bits open file dialogs.

---
 dlls/commdlg/filedlg95.c | 5 +++--
 dlls/shell32/shlfolder.c | 5 ++++-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/dlls/commdlg/filedlg95.c b/dlls/commdlg/filedlg95.c
index 26c79150adb..e84147ab1fb 100644
--- a/dlls/commdlg/filedlg95.c
+++ b/dlls/commdlg/filedlg95.c
@@ -2693,7 +2693,7 @@ LPITEMIDLIST GetParentPidl(LPITEMIDLIST pidl)
  *      GetPidlFromName
  *
  * returns the pidl of the file name relative to folder 
- * NULL if an error occured
+ * NULL if an error occurred
  */
 LPITEMIDLIST GetPidlFromName(IShellFolder *lpsf,LPCSTR lpcstrFileName)
 {
@@ -2704,7 +2704,8 @@ LPITEMIDLIST GetPidlFromName(IShellFolder *lpsf,LPCSTR lpcstrFileName)
   TRACE("sf=%p file=%s\n", lpsf, lpcstrFileName);
 
   if(!lpcstrFileName) return NULL;
-    
+  if(!*lpcstrFileName) return NULL;
+
   MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,lpcstrFileName,-1,(LPWSTR)lpwstrDirName,MAX_PATH);  
 
   if(!lpsf)
diff --git a/dlls/shell32/shlfolder.c b/dlls/shell32/shlfolder.c
index 49130c5e50f..31fc1c7acd8 100644
--- a/dlls/shell32/shlfolder.c
+++ b/dlls/shell32/shlfolder.c
@@ -682,7 +682,10 @@ static HRESULT WINAPI IShellFolder_fnParseDisplayName(
 	  }
 	}
 
-	*ppidl = pidlTemp;
+        if (!hr)
+	  *ppidl = pidlTemp;
+	else
+	  *ppidl = NULL;
 
 	TRACE("(%p)->(-- pidl=%p ret=0x%08lx)\n", This, ppidl? *ppidl:0, hr);
 
-- 
GitLab