crypt32: Propagate errors from CertFree*Context to CertDelete*FromStore.

This commit is contained in:
Juan Lang 2009-10-30 15:18:53 -07:00 committed by Alexandre Julliard
parent 40855cae97
commit 92324ab38e
3 changed files with 9 additions and 15 deletions

View File

@ -309,10 +309,7 @@ BOOL WINAPI CertDeleteCTLFromStore(PCCTL_CONTEXT pCtlContext)
if (!pCtlContext)
ret = TRUE;
else if (!pCtlContext->hCertStore)
{
ret = TRUE;
CertFreeCTLContext(pCtlContext);
}
ret = CertFreeCTLContext(pCtlContext);
else
{
PWINECRYPT_CERTSTORE hcs = pCtlContext->hCertStore;
@ -321,7 +318,8 @@ BOOL WINAPI CertDeleteCTLFromStore(PCCTL_CONTEXT pCtlContext)
ret = FALSE;
else
ret = hcs->ctls.deleteContext(hcs, (void *)pCtlContext);
CertFreeCTLContext(pCtlContext);
if (ret)
ret = CertFreeCTLContext(pCtlContext);
}
return ret;
}

View File

@ -966,10 +966,7 @@ BOOL WINAPI CertDeleteCertificateFromStore(PCCERT_CONTEXT pCertContext)
if (!pCertContext)
ret = TRUE;
else if (!pCertContext->hCertStore)
{
ret = TRUE;
CertFreeCertificateContext(pCertContext);
}
ret = CertFreeCertificateContext(pCertContext);
else
{
PWINECRYPT_CERTSTORE hcs = pCertContext->hCertStore;
@ -979,7 +976,7 @@ BOOL WINAPI CertDeleteCertificateFromStore(PCCERT_CONTEXT pCertContext)
else
ret = hcs->certs.deleteContext(hcs, (void *)pCertContext);
if (ret)
CertFreeCertificateContext(pCertContext);
ret = CertFreeCertificateContext(pCertContext);
}
return ret;
}
@ -1105,10 +1102,7 @@ BOOL WINAPI CertDeleteCRLFromStore(PCCRL_CONTEXT pCrlContext)
if (!pCrlContext)
ret = TRUE;
else if (!pCrlContext->hCertStore)
{
ret = TRUE;
CertFreeCRLContext(pCrlContext);
}
ret = CertFreeCRLContext(pCrlContext);
else
{
PWINECRYPT_CERTSTORE hcs = pCrlContext->hCertStore;
@ -1117,7 +1111,8 @@ BOOL WINAPI CertDeleteCRLFromStore(PCCRL_CONTEXT pCrlContext)
ret = FALSE;
else
ret = hcs->crls.deleteContext(hcs, (void *)pCrlContext);
CertFreeCRLContext(pCrlContext);
if (ret)
ret = CertFreeCRLContext(pCrlContext);
}
return ret;
}

View File

@ -237,6 +237,7 @@ static void testMemStore(void)
GetLastError());
/* try deleting a copy */
ret = CertDeleteCertificateFromStore(copy);
todo_wine
ok(ret, "CertDeleteCertificateFromStore failed: %08x\n",
GetLastError());
/* check that the store is empty */