Module: wine Branch: master Commit: 1799ceb8c1a0764d9ae8077207f661ec55c01c07 URL: http://source.winehq.org/git/wine.git/?a=commit;h=1799ceb8c1a0764d9ae8077207...
Author: Juan Lang juan.lang@gmail.com Date: Fri Aug 15 16:39:09 2008 -0700
crypt32: Free memory using the correct function on failure.
---
dlls/crypt32/encode.c | 14 +++++++++++--- 1 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/dlls/crypt32/encode.c b/dlls/crypt32/encode.c index ee42a3d..0d62b02 100644 --- a/dlls/crypt32/encode.c +++ b/dlls/crypt32/encode.c @@ -1561,6 +1561,14 @@ static BOOL CRYPT_AsnEncodeUnicodeStringCoerce(const CERT_NAME_VALUE *value, return ret; }
+static void CRYPT_FreeSpace(PCRYPT_ENCODE_PARA pEncodePara, LPVOID pv) +{ + if (pEncodePara && pEncodePara->pfnFree) + pEncodePara->pfnFree(pv); + else + LocalFree(pv); +} + static BOOL CRYPT_AsnEncodeNumericString(const CERT_NAME_VALUE *value, DWORD dwFlags, PCRYPT_ENCODE_PARA pEncodePara, BYTE *pbEncoded, DWORD *pcbEncoded) @@ -1602,7 +1610,7 @@ static BOOL CRYPT_AsnEncodeNumericString(const CERT_NAME_VALUE *value, } } if (!ret && (dwFlags & CRYPT_ENCODE_ALLOC_FLAG)) - CryptMemFree(*(BYTE **)pbEncoded); + CRYPT_FreeSpace(pEncodePara, *(BYTE **)pbEncoded); } } return ret; @@ -1656,7 +1664,7 @@ static BOOL CRYPT_AsnEncodePrintableString(const CERT_NAME_VALUE *value, } } if (!ret && (dwFlags & CRYPT_ENCODE_ALLOC_FLAG)) - CryptMemFree(*(BYTE **)pbEncoded); + CRYPT_FreeSpace(pEncodePara, *(BYTE **)pbEncoded); } } return ret; @@ -1703,7 +1711,7 @@ static BOOL CRYPT_AsnEncodeIA5String(const CERT_NAME_VALUE *value, } } if (!ret && (dwFlags & CRYPT_ENCODE_ALLOC_FLAG)) - CryptMemFree(*(BYTE **)pbEncoded); + CRYPT_FreeSpace(pEncodePara, *(BYTE **)pbEncoded); } } return ret;