crypt32(7/17): Store world store in chain

Juan Lang juan.lang at gmail.com
Thu Sep 6 12:07:03 CDT 2007


--Juan
-------------- next part --------------
From 7956586a576cb1c6e1aa1eb09f3b9acee6f3a3f9 Mon Sep 17 00:00:00 2001
From: Juan Lang <juan.lang at gmail.com>
Date: Thu, 6 Sep 2007 09:59:19 -0700
Subject: [PATCH] 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_BuildCandidateChainFro
         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_BuildCandidateChainFro
             ret = FALSE;
         *ppChain = chain;
     }
-    CertCloseStore(world, 0);
     return ret;
 }
 
@@ -663,6 +664,7 @@ static void CRYPT_FreeChainContext(PCert
     for (i = 0; i < chain->context.cChain; i++)
         CRYPT_FreeSimpleChain(chain->context.rgpChain[i]);
     CryptMemFree(chain->context.rgpChain);
+    CertCloseStore(chain->world, 0);
     CryptMemFree(chain);
 }
 
-- 
1.4.1


More information about the wine-patches mailing list