Bruno Jesus : comdlg32: Avoid crash when a path is passed into Open File Dialog.
Alexandre Julliard
julliard at winehq.org
Thu Oct 27 14:27:57 CDT 2016
Module: wine
Branch: master
Commit: 58091188929f9786b408912c991420f54f489f6a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=58091188929f9786b408912c991420f54f489f6a
Author: Bruno Jesus <00cpxxx at gmail.com>
Date: Thu Oct 27 06:53:27 2016 +0000
comdlg32: Avoid crash when a path is passed into Open File Dialog.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
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);
More information about the wine-cvs
mailing list