crypt32: Store world store in chain.

This commit is contained in:
Juan Lang 2007-09-06 09:59:19 -07:00 committed by Alexandre Julliard
parent 818634d69a
commit a82b36ac98
1 changed files with 3 additions and 1 deletions

View File

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