Module: wine Branch: master Commit: a090b46f727b9ccd0efd97cce0f870d56ad31519 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a090b46f727b9ccd0efd97cce0...
Author: Marcus Meissner marcus@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; }