Signed-off-by: Sven Baars sbaars@codeweavers.com --- dlls/crypt32/tests/cert.c | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-)
diff --git a/dlls/crypt32/tests/cert.c b/dlls/crypt32/tests/cert.c index b96f94cc662..f0750cfc826 100644 --- a/dlls/crypt32/tests/cert.c +++ b/dlls/crypt32/tests/cert.c @@ -205,10 +205,9 @@ static void testAddCert(void) { CRYPT_DATA_BLOB hash = { sizeof(bigCert2Hash), bigCert2Hash };
- /* Duplicate (AddRef) the context so we can still use it after - * deleting it from the store. - */ - CertDuplicateCertificateContext(context); + /* We always need to call CertFreeCertificateContext after calling + CertAddEncodedCertificateToStore, which means that we can use + the context after deleting it from the store */ CertDeleteCertificateFromStore(context); /* Set the same hash as bigCert2, and try to readd it */ ret = CertSetCertificateContextProperty(context, CERT_HASH_PROP_ID, @@ -243,10 +242,9 @@ static void testAddCert(void) ret = CertAddEncodedCertificateToStore(store, X509_ASN_ENCODING, bigCert2WithDifferentSerial, sizeof(bigCert2WithDifferentSerial), CERT_STORE_ADD_NEW, &context); - ok(ret, "CertAddEncodedCertificateToStore failed: %08x\n", - GetLastError()); - if (context) - CertDeleteCertificateFromStore(context); + ok(ret, "CertAddEncodedCertificateToStore failed: %08x\n", GetLastError()); + CertDeleteCertificateFromStore(context); + CertFreeCertificateContext(context);
/* Adding a cert with the same subject name and serial number (but * different issuer) as an existing cert succeeds. @@ -255,10 +253,9 @@ static void testAddCert(void) ret = CertAddEncodedCertificateToStore(store, X509_ASN_ENCODING, bigCertWithDifferentSubject, sizeof(bigCertWithDifferentSubject), CERT_STORE_ADD_NEW, &context); - ok(ret, "CertAddEncodedCertificateToStore failed: %08x\n", - GetLastError()); - if (context) - CertDeleteCertificateFromStore(context); + ok(ret, "CertAddEncodedCertificateToStore failed: %08x\n", GetLastError()); + CertDeleteCertificateFromStore(context); + CertFreeCertificateContext(context);
/* Adding a cert with the same issuer name and serial number (but * different otherwise) as an existing cert succeeds. @@ -267,10 +264,9 @@ static void testAddCert(void) ret = CertAddEncodedCertificateToStore(store, X509_ASN_ENCODING, bigCertWithDifferentIssuer, sizeof(bigCertWithDifferentIssuer), CERT_STORE_ADD_NEW, &context); - ok(ret, "CertAddEncodedCertificateToStore failed: %08x\n", - GetLastError()); - if (context) - CertDeleteCertificateFromStore(context); + ok(ret, "CertAddEncodedCertificateToStore failed: %08x\n", GetLastError()); + CertDeleteCertificateFromStore(context); + CertFreeCertificateContext(context);
collection = CertOpenStore(CERT_STORE_PROV_COLLECTION, 0, 0, CERT_STORE_CREATE_NEW_FLAG, NULL); @@ -4318,6 +4314,7 @@ static void test_VerifySignature(void) BCryptDestroyHash(bhash); done: BCryptCloseAlgorithmProvider(alg, 0); + BCryptDestroyKey(bkey);
LocalFree(info); CertFreeCertificateContext(cert);