Module: wine
Branch: master
Commit: a090b46f727b9ccd0efd97cce0f870d56ad31519
URL:
http://source.winehq.org/git/wine.git/?a=commit;h=a090b46f727b9ccd0efd97cce…
Author: Marcus Meissner <marcus(a)jet.franken.de>
Date: Sun Sep 29 14:17:45 2013 +0200
wintrust: Fixed some memory leaks (Coverity).
---
dlls/wintrust/crypt.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/dlls/wintrust/crypt.c b/dlls/wintrust/crypt.c
index 341f45b..0ed45d3 100644
--- a/dlls/wintrust/crypt.c
+++ b/dlls/wintrust/crypt.c
@@ -909,6 +909,7 @@ HANDLE WINAPI CryptCATOpen(LPWSTR pwszFileName, DWORD fdwOpenFlags,
HCRYPTPROV h
if (!CryptMsgGetParam(hmsg, CMSG_ATTR_CERT_PARAM, i, NULL, &size))
{
CryptMsgClose(hmsg);
+ HeapFree(GetProcessHeap(), 0, cc);
return INVALID_HANDLE_VALUE;
}
sum += size;
@@ -916,6 +917,7 @@ HANDLE WINAPI CryptCATOpen(LPWSTR pwszFileName, DWORD fdwOpenFlags,
HCRYPTPROV h
if (!(cc->attr = HeapAlloc(GetProcessHeap(), 0, sizeof(*cc->attr) *
cc->attr_count + sum)))
{
CryptMsgClose(hmsg);
+ HeapFree(GetProcessHeap(), 0, cc);
SetLastError(ERROR_OUTOFMEMORY);
return INVALID_HANDLE_VALUE;
}
@@ -926,12 +928,14 @@ HANDLE WINAPI CryptCATOpen(LPWSTR pwszFileName, DWORD fdwOpenFlags,
HCRYPTPROV h
{
CryptMsgClose(hmsg);
HeapFree(GetProcessHeap(), 0, cc->attr);
+ HeapFree(GetProcessHeap(), 0, cc);
return INVALID_HANDLE_VALUE;
}
if (!CryptMsgGetParam(hmsg, CMSG_ATTR_CERT_PARAM, i, p, &size))
{
CryptMsgClose(hmsg);
HeapFree(GetProcessHeap(), 0, cc->attr);
+ HeapFree(GetProcessHeap(), 0, cc);
return INVALID_HANDLE_VALUE;
}
p += size;
@@ -948,6 +952,7 @@ HANDLE WINAPI CryptCATOpen(LPWSTR pwszFileName, DWORD fdwOpenFlags,
HCRYPTPROV h
cc->magic = CRYPTCAT_MAGIC;
return cc;
}
+ HeapFree(GetProcessHeap(), 0, cc);
return INVALID_HANDLE_VALUE;
}