[PATCH] shell32: Fix string leak
Nikolay Sivov
nsivov at codeweavers.com
Sun Apr 23 10:29:08 CDT 2017
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
Mentioned in https://bugs.winehq.org/show_bug.cgi?id=36430#c1
dlls/shell32/autocomplete.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/dlls/shell32/autocomplete.c b/dlls/shell32/autocomplete.c
index 543e012dfc..1a02c8301e 100644
--- a/dlls/shell32/autocomplete.c
+++ b/dlls/shell32/autocomplete.c
@@ -99,7 +99,6 @@ static inline IAutoCompleteImpl *impl_from_IAutoCompleteDropDown(IAutoCompleteDr
static LRESULT APIENTRY ACEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
IAutoCompleteImpl *This = GetPropW(hwnd, autocomplete_propertyW);
- LPOLESTR strs;
HRESULT hr;
WCHAR hwndText[255];
WCHAR *hwndQCText;
@@ -222,7 +221,9 @@ static LRESULT APIENTRY ACEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam,
IEnumString_Reset(This->enumstr);
filled = FALSE;
for(cpt = 0;;) {
+ LPOLESTR strs = NULL;
ULONG fetched;
+
hr = IEnumString_Next(This->enumstr, 1, &strs, &fetched);
if (hr != S_OK)
break;
@@ -235,8 +236,10 @@ static LRESULT APIENTRY ACEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam,
strcatW(buffW, &strs[len]);
SetWindowTextW(hwnd, buffW);
SendMessageW(hwnd, EM_SETSEL, len, strlenW(strs));
- if (!(This->options & ACO_AUTOSUGGEST))
+ if (!(This->options & ACO_AUTOSUGGEST)) {
+ CoTaskMemFree(strs);
break;
+ }
}
if (This->options & ACO_AUTOSUGGEST) {
@@ -246,6 +249,8 @@ static LRESULT APIENTRY ACEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam,
filled = TRUE;
}
+
+ CoTaskMemFree(strs);
}
if (This->options & ACO_AUTOSUGGEST) {
--
2.11.0
More information about the wine-patches
mailing list