From 3cda204626decc728b6bc0c74ccc25fd94e631d9 Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Sun, 17 Jan 2016 10:49:03 +0100 Subject: Windows: avoid leaking location of selected keyfiles by clearing global variable used to store multiple file selection path. --- src/Common/Dlgcode.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Common/Dlgcode.c b/src/Common/Dlgcode.c index c74b9ef7..8b1ed218 100644 --- a/src/Common/Dlgcode.c +++ b/src/Common/Dlgcode.c @@ -4160,6 +4160,7 @@ BOOL SelectMultipleFiles (HWND hwndDlg, const char *stringId, wchar_t *lpszFileN ZeroMemory (&ofn, sizeof (ofn)); + SelectMultipleFilesPath[0] = 0; *lpszFileName = 0; ofn.lStructSize = sizeof (ofn); ofn.hwndOwner = hwndDlg; @@ -4192,6 +4193,7 @@ BOOL SelectMultipleFiles (HWND hwndDlg, const char *stringId, wchar_t *lpszFileN // Single file selected StringCbCopyW (lpszFileName, cbFileName, SelectMultipleFilesPath); SelectMultipleFilesOffset = 0; + SecureZeroMemory (SelectMultipleFilesPath, sizeof (SelectMultipleFilesPath)); } else { @@ -4229,7 +4231,10 @@ BOOL SelectMultipleFilesNext (wchar_t *lpszFileName, size_t cbFileName) SelectMultipleFilesOffset += (int) wcslen (SelectMultipleFilesPath + SelectMultipleFilesOffset) + 1; if (SelectMultipleFilesPath[SelectMultipleFilesOffset] == 0) + { SelectMultipleFilesOffset = 0; + SecureZeroMemory (SelectMultipleFilesPath, sizeof (SelectMultipleFilesPath)); + } return TRUE; } -- cgit v1.2.3