crypt32: Avoid reading freed memory when encountering a cyclic chain.

oldstable
Juan Lang 2009-02-24 16:55:00 -08:00 committed by Alexandre Julliard
parent 65e8bf6f48
commit 4817fbc362
1 changed files with 6 additions and 0 deletions

View File

@ -306,7 +306,13 @@ static BOOL CRYPT_AddCertToSimpleChain(PCertificateChainEngine engine,
= subjectInfoStatus;
/* FIXME: initialize the rest of element */
if (!(chain->cElement % engine->CycleDetectionModulus))
{
CRYPT_CheckSimpleChainForCycles(chain);
/* Reinitialize the element pointer in case the chain is
* cyclic, in which case the chain is truncated.
*/
element = chain->rgpElement[chain->cElement - 1];
}
CRYPT_CombineTrustStatus(&chain->TrustStatus,
&element->TrustStatus);
ret = TRUE;