Add a test for a NULL X509_STORE in X509_STORE_CTX_init

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/6001)
This commit is contained in:
Matt Caswell 2018-04-18 14:22:36 +01:00
parent 1c705121af
commit 7f6dfa19df

View File

@ -138,6 +138,43 @@ static int test_alt_chains_cert_forgery(void)
return ret;
}
static int test_store_ctx(void)
{
X509_STORE_CTX *sctx = NULL;
X509 *x = NULL;
BIO *bio = NULL;
int testresult = 0, ret;
bio = BIO_new_file(bad_f, "r");
if (bio == NULL)
goto err;
x = PEM_read_bio_X509(bio, NULL, 0, NULL);
if (x == NULL)
goto err;
sctx = X509_STORE_CTX_new();
if (sctx == NULL)
goto err;
if (!X509_STORE_CTX_init(sctx, NULL, x, NULL))
goto err;
/* Verifying a cert where we have no trusted certs should fail */
ret = X509_verify_cert(sctx);
if (ret == 0) {
/* This is the result we were expecting: Test passed */
testresult = 1;
}
err:
X509_STORE_CTX_free(sctx);
X509_free(x);
BIO_free(bio);
return testresult;
}
int setup_tests(void)
{
if (!TEST_ptr(roots_f = test_get_argument(0))
@ -148,5 +185,6 @@ int setup_tests(void)
}
ADD_TEST(test_alt_chains_cert_forgery);
ADD_TEST(test_store_ctx);
return 1;
}