Juan Lang : crypt32: Pass pointer to structure rather than assuming a particular alignment.
Alexandre Julliard
julliard at winehq.org
Mon Oct 12 11:19:41 CDT 2009
Module: wine
Branch: master
Commit: 37754e49c8082c436c8736e0ed71c48aa9a21796
URL: http://source.winehq.org/git/wine.git/?a=commit;h=37754e49c8082c436c8736e0ed71c48aa9a21796
Author: Juan Lang <juan.lang at gmail.com>
Date: Fri Oct 9 14:06:59 2009 -0700
crypt32: Pass pointer to structure rather than assuming a particular alignment.
---
dlls/crypt32/encode.c | 22 ++++++++++------------
1 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/dlls/crypt32/encode.c b/dlls/crypt32/encode.c
index 258384c..10d63b4 100644
--- a/dlls/crypt32/encode.c
+++ b/dlls/crypt32/encode.c
@@ -2800,13 +2800,10 @@ static BOOL WINAPI CRYPT_AsnEncodeCertPolicyQualifiers(DWORD dwCertEncodingType,
LPCSTR lpszStructType, const void *pvStructInfo, DWORD dwFlags,
PCRYPT_ENCODE_PARA pEncodePara, BYTE *pbEncoded, DWORD *pcbEncoded)
{
- DWORD cPolicyQualifier = *(DWORD *)pvStructInfo;
- const CERT_POLICY_QUALIFIER_INFO *rgPolicyQualifier =
- *(const CERT_POLICY_QUALIFIER_INFO **)
- ((LPBYTE)pvStructInfo + sizeof(DWORD));
+ const CERT_POLICY_INFO *info = pvStructInfo;
BOOL ret;
- if (!cPolicyQualifier)
+ if (!info->cPolicyQualifier)
{
*pcbEncoded = 0;
ret = TRUE;
@@ -2820,10 +2817,11 @@ static BOOL WINAPI CRYPT_AsnEncodeCertPolicyQualifiers(DWORD dwCertEncodingType,
DWORD bytesNeeded = 0, lenBytes, size, i;
ret = TRUE;
- for (i = 0; ret && i < cPolicyQualifier; i++)
+ for (i = 0; ret && i < info->cPolicyQualifier; i++)
{
- items[0].pvStructInfo = rgPolicyQualifier[i].pszPolicyQualifierId;
- items[1].pvStructInfo = &rgPolicyQualifier[i].Qualifier;
+ items[0].pvStructInfo =
+ info->rgPolicyQualifier[i].pszPolicyQualifierId;
+ items[1].pvStructInfo = &info->rgPolicyQualifier[i].Qualifier;
ret = CRYPT_AsnEncodeSequence(dwCertEncodingType, items,
sizeof(items) / sizeof(items[0]),
dwFlags & ~CRYPT_ENCODE_ALLOC_FLAG, NULL, NULL, &size);
@@ -2847,12 +2845,12 @@ static BOOL WINAPI CRYPT_AsnEncodeCertPolicyQualifiers(DWORD dwCertEncodingType,
CRYPT_EncodeLen(bytesNeeded - lenBytes - 1, pbEncoded,
&lenBytes);
pbEncoded += lenBytes;
- for (i = 0; ret && i < cPolicyQualifier; i++)
+ for (i = 0; ret && i < info->cPolicyQualifier; i++)
{
items[0].pvStructInfo =
- rgPolicyQualifier[i].pszPolicyQualifierId;
+ info->rgPolicyQualifier[i].pszPolicyQualifierId;
items[1].pvStructInfo =
- &rgPolicyQualifier[i].Qualifier;
+ &info->rgPolicyQualifier[i].Qualifier;
size = bytesNeeded;
ret = CRYPT_AsnEncodeSequence(dwCertEncodingType, items,
sizeof(items) / sizeof(items[0]),
@@ -2877,7 +2875,7 @@ static BOOL CRYPT_AsnEncodeCertPolicy(DWORD dwCertEncodingType,
{
struct AsnEncodeSequenceItem items[2] = {
{ info->pszPolicyIdentifier, CRYPT_AsnEncodeOid, 0 },
- { &info->cPolicyQualifier, CRYPT_AsnEncodeCertPolicyQualifiers, 0 },
+ { info, CRYPT_AsnEncodeCertPolicyQualifiers, 0 },
};
BOOL ret;
More information about the wine-cvs
mailing list