[PATCH 1/2] comdlg32: Stop crash when a path is passed into Open File Dialog
Alistair Leslie-Hughes
leslie_alistair at hotmail.com
Thu Oct 27 01:53:27 CDT 2016
From: Bruno Jesus <00cpxxx at gmail.com>
Fixes: https://bugs.winehq.org/show_bug.cgi?id=30673
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
---
dlls/comdlg32/filedlg.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/dlls/comdlg32/filedlg.c b/dlls/comdlg32/filedlg.c
index 95eacd3..67b3566 100644
--- a/dlls/comdlg32/filedlg.c
+++ b/dlls/comdlg32/filedlg.c
@@ -1565,10 +1565,16 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd)
result = GetFullPathNameW(fodInfos->filename, MAX_PATH, tmpBuf, &nameBit);
if (result) {
- /* nameBit is always shorter than the original filename */
- lstrcpyW(fodInfos->filename,nameBit);
+ /* nameBit is always shorter than the original filename. It may be NULL
+ * when the filename contains only a drive name instead of file name */
+ if (nameBit)
+ {
+ lstrcpyW(fodInfos->filename,nameBit);
+ *nameBit = 0x00;
+ }
+ else
+ *fodInfos->filename = '\0';
- *nameBit = 0x00;
MemFree(fodInfos->initdir);
fodInfos->initdir = MemAlloc((lstrlenW(tmpBuf) + 1)*sizeof(WCHAR));
lstrcpyW(fodInfos->initdir, tmpBuf);
--
1.9.1
More information about the wine-patches
mailing list