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