Juan Lang : crypt32: Store world store in chain.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Sep 10 10:17:59 CDT 2007


Module: wine
Branch: master
Commit: a82b36ac9811dcec46f0db1967d4fec357522ff2
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a82b36ac9811dcec46f0db1967d4fec357522ff2

Author: Juan Lang <juan.lang at gmail.com>
Date:   Thu Sep  6 09:59:19 2007 -0700

crypt32: Store world store in chain.

---

 dlls/crypt32/chain.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/dlls/crypt32/chain.c b/dlls/crypt32/chain.c
index c6b197a..ffaef45 100644
--- a/dlls/crypt32/chain.c
+++ b/dlls/crypt32/chain.c
@@ -203,6 +203,7 @@ void default_chain_engine_free(void)
 typedef struct _CertificateChain
 {
     CERT_CHAIN_CONTEXT context;
+    HCERTSTORE world;
     LONG ref;
 } CertificateChain, *PCertificateChain;
 
@@ -585,6 +586,7 @@ static BOOL CRYPT_BuildCandidateChainFromCert(HCERTCHAINENGINE hChainEngine,
         if (chain)
         {
             chain->ref = 1;
+            chain->world = world;
             chain->context.cbSize = sizeof(CERT_CHAIN_CONTEXT);
             memcpy(&chain->context.TrustStatus, &simpleChain->TrustStatus,
              sizeof(CERT_TRUST_STATUS));
@@ -600,7 +602,6 @@ static BOOL CRYPT_BuildCandidateChainFromCert(HCERTCHAINENGINE hChainEngine,
             ret = FALSE;
         *ppChain = chain;
     }
-    CertCloseStore(world, 0);
     return ret;
 }
 
@@ -663,6 +664,7 @@ static void CRYPT_FreeChainContext(PCertificateChain chain)
     for (i = 0; i < chain->context.cChain; i++)
         CRYPT_FreeSimpleChain(chain->context.rgpChain[i]);
     CryptMemFree(chain->context.rgpChain);
+    CertCloseStore(chain->world, 0);
     CryptMemFree(chain);
 }
 




More information about the wine-cvs mailing list