Juan Lang : crypt32: Fix up decoding.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Feb 9 05:47:29 CST 2006


Module: wine
Branch: refs/heads/master
Commit: 69698f9b44ce78b6e60e91e9664779e8a0e5383b
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=69698f9b44ce78b6e60e91e9664779e8a0e5383b

Author: Juan Lang <juan_lang at yahoo.com>
Date:   Thu Feb  9 12:09:28 2006 +0100

crypt32: Fix up decoding.
- don't use the no copy flag when decoding, the lifetime of the buffer
  to decode isn't guaranteed
- remove some extraneous ternary comparisons
- fix a comment

---

 dlls/crypt32/cert.c |   12 +++++-------
 1 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/dlls/crypt32/cert.c b/dlls/crypt32/cert.c
index 346d898..52cd987 100644
--- a/dlls/crypt32/cert.c
+++ b/dlls/crypt32/cert.c
@@ -552,7 +552,7 @@ static void CRYPT_MemEmptyStore(PWINE_ME
     PWINE_CERT_LIST_ENTRY cert, next;
 
     EnterCriticalSection(&store->cs);
-    /* Note that CertFreeCertificateContext calls HeapFree on the passed-in
+    /* Note that CertFreeCertificateContext calls CryptMemFree on the passed-in
      * pointer if its ref-count reaches zero.  That's okay here because there
      * aren't any allocated data outside of the WINE_CERT_CONTEXT_REF portion
      * of the CertListEntry.
@@ -1939,15 +1939,13 @@ static PWINE_CERT_CONTEXT CRYPT_CreateCe
 
     /* First try to decode it as a signed cert. */
     ret = CryptDecodeObjectEx(X509_ASN_ENCODING, X509_CERT, pbCertEncoded,
-     cbCertEncoded, CRYPT_DECODE_ALLOC_FLAG | CRYPT_DECODE_NOCOPY_FLAG, NULL,
-     (BYTE *)&signedCert, &size);
+     cbCertEncoded, CRYPT_DECODE_ALLOC_FLAG, NULL, (BYTE *)&signedCert, &size);
     if (ret)
     {
         size = 0;
         ret = CryptDecodeObjectEx(X509_ASN_ENCODING, X509_CERT_TO_BE_SIGNED,
          signedCert->ToBeSigned.pbData, signedCert->ToBeSigned.cbData,
-         CRYPT_DECODE_ALLOC_FLAG | CRYPT_DECODE_NOCOPY_FLAG, NULL,
-         (BYTE *)&certInfo, &size);
+         CRYPT_DECODE_ALLOC_FLAG, NULL, (BYTE *)&certInfo, &size);
         LocalFree(signedCert);
     }
     /* Failing that, try it as an unsigned cert */
@@ -2241,7 +2239,7 @@ static BOOL CRYPT_SaveCertificateContext
         {
             CryptMemFree(prop->pbData);
             prop->hdr.cb = cbData;
-            prop->pbData = cbData ? data : NULL;
+            prop->pbData = data;
             ret = TRUE;
         }
         else
@@ -2253,7 +2251,7 @@ static BOOL CRYPT_SaveCertificateContext
                 prop->hdr.unknown = 1;
                 prop->hdr.cb = cbData;
                 list_init(&prop->entry);
-                prop->pbData = cbData ? data : NULL;
+                prop->pbData = data;
                 list_add_tail(&context->extendedProperties, &prop->entry);
                 ret = TRUE;
             }




More information about the wine-cvs mailing list