From 0bd2bad093d15bfce705f07962812c7dbe5fbec3 Mon Sep 17 00:00:00 2001 From: Kamil Hornicek Date: Sun, 6 Apr 2014 17:09:47 +0000 Subject: [PATCH] [MAIN] - fix a memory leak CID #716340 - initialize the new cursor scheme name so it doesn't show garbage in the save dialog The previous commit fixed: CID #716120 CID #715936 CID #515183 svn path=/trunk/; revision=62667 --- reactos/dll/cpl/main/mouse.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/reactos/dll/cpl/main/mouse.c b/reactos/dll/cpl/main/mouse.c index a8a97f52850..71d11f5cdb5 100644 --- a/reactos/dll/cpl/main/mouse.c +++ b/reactos/dll/cpl/main/mouse.c @@ -718,6 +718,7 @@ SaveCursorScheme(HWND hwndDlg) if (nSel == 0) { szSchemeName[0] = 0; + szNewSchemeName[0] = 0; } else { @@ -775,6 +776,9 @@ SaveCursorScheme(HWND hwndDlg) lpSchemeData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, nLength * sizeof(TCHAR)); + if(!lpSchemeData) + return FALSE; + for (index = IDS_ARROW, i = 0; index <= IDS_HAND; index++, i++) { CompressPath(szTempPath, g_CursorData[i].szCursorPath); @@ -784,11 +788,15 @@ SaveCursorScheme(HWND hwndDlg) } if (RegOpenCurrentUser(KEY_READ | KEY_SET_VALUE, &hCuKey) != ERROR_SUCCESS) + { + HeapFree(GetProcessHeap(), 0, lpSchemeData); return FALSE; + } if (RegOpenKeyEx(hCuKey, _T("Control Panel\\Cursors\\Schemes"), 0, KEY_READ | KEY_SET_VALUE, &hCuCursorKey) != ERROR_SUCCESS) { RegCloseKey(hCuKey); + HeapFree(GetProcessHeap(), 0, lpSchemeData); return FALSE; }