Juan Lang : crypt32: Free memory using the correct function on failure.
Alexandre Julliard
julliard at winehq.org
Tue Aug 19 08:46:25 CDT 2008
Module: wine
Branch: master
Commit: 1799ceb8c1a0764d9ae8077207f661ec55c01c07
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1799ceb8c1a0764d9ae8077207f661ec55c01c07
Author: Juan Lang <juan.lang at 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;
More information about the wine-cvs
mailing list