From bb1f8edcc22480d825c6c8a4614e5e379f00386b Mon Sep 17 00:00:00 2001 From: Mike McCormack Date: Fri, 10 Nov 2006 15:41:38 +0900 Subject: [PATCH] riched20: Fix a memory leak. --- dlls/riched20/editor.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c index d8fa7aed46a..07aa4e07803 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -2201,20 +2201,26 @@ LRESULT WINAPI RichEditANSIWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lP FINDTEXTA *ft = (FINDTEXTA *)lParam; int nChars = MultiByteToWideChar(CP_ACP, 0, ft->lpstrText, -1, NULL, 0); WCHAR *tmp; - + LRESULT r; + if ((tmp = ALLOC_N_OBJ(WCHAR, nChars)) != NULL) MultiByteToWideChar(CP_ACP, 0, ft->lpstrText, -1, tmp, nChars); - return ME_FindText(editor, wParam, &ft->chrg, tmp, NULL); + r = ME_FindText(editor, wParam, &ft->chrg, tmp, NULL); + FREE_OBJ( tmp ); + return r; } case EM_FINDTEXTEX: { FINDTEXTEXA *ex = (FINDTEXTEXA *)lParam; int nChars = MultiByteToWideChar(CP_ACP, 0, ex->lpstrText, -1, NULL, 0); WCHAR *tmp; - + LRESULT r; + if ((tmp = ALLOC_N_OBJ(WCHAR, nChars)) != NULL) MultiByteToWideChar(CP_ACP, 0, ex->lpstrText, -1, tmp, nChars); - return ME_FindText(editor, wParam, &ex->chrg, tmp, &ex->chrgText); + r = ME_FindText(editor, wParam, &ex->chrg, tmp, &ex->chrgText); + FREE_OBJ( tmp ); + return r; } case EM_FINDTEXTW: {