From f566f38e2fd85f05f1291d7b6154440887c15a70 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Tue, 6 Dec 2011 21:53:20 +0100 Subject: [PATCH] msctf: Fix memory leaks. --- dlls/msctf/context.c | 3 +++ dlls/msctf/inputprocessor.c | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/dlls/msctf/context.c b/dlls/msctf/context.c index fbd7229ca8d..c013cf96e20 100644 --- a/dlls/msctf/context.c +++ b/dlls/msctf/context.c @@ -1013,7 +1013,10 @@ static HRESULT WINAPI TextStoreACPSink_OnLockGranted(ITextStoreACPSink *iface, sinkcookie = HeapAlloc(GetProcessHeap(),0,sizeof(EditCookie)); if (!sinkcookie) + { + HeapFree(GetProcessHeap(), 0, cookie); return E_OUTOFMEMORY; + } cookie->lockType = dwLockFlags; cookie->pOwningContext = This->pContext; diff --git a/dlls/msctf/inputprocessor.c b/dlls/msctf/inputprocessor.c index 62b93c6062c..5242f142fb0 100644 --- a/dlls/msctf/inputprocessor.c +++ b/dlls/msctf/inputprocessor.c @@ -924,7 +924,10 @@ static HRESULT ProfilesEnumGuid_Constructor(IEnumGUID **ppOut) if (RegCreateKeyExW(HKEY_LOCAL_MACHINE, szwSystemTIPKey, 0, NULL, 0, KEY_READ | KEY_WRITE, NULL, &This->key, NULL) != ERROR_SUCCESS) + { + HeapFree(GetProcessHeap(), 0, This); return E_FAIL; + } TRACE("returning %p\n", This); *ppOut = (IEnumGUID*)This; @@ -1161,7 +1164,10 @@ static HRESULT EnumTfLanguageProfiles_Constructor(LANGID langid, IEnumTfLanguage if (RegCreateKeyExW(HKEY_LOCAL_MACHINE, szwSystemTIPKey, 0, NULL, 0, KEY_READ | KEY_WRITE, NULL, &This->tipkey, NULL) != ERROR_SUCCESS) + { + HeapFree(GetProcessHeap(), 0, This); return E_FAIL; + } TRACE("returning %p\n", This); *ppOut = (IEnumTfLanguageProfiles*)This;