mirror of
https://github.com/openssl/openssl.git
synced 2025-01-30 14:01:55 +08:00
cmp_hdr_test.c: Fix leaks in error cases
Fixes #24475 Reviewed-by: Todd Short <todd.short@me.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/24511)
This commit is contained in:
parent
7bc10f6ce2
commit
0986e128ff
@ -71,25 +71,30 @@ static int test_HDR_set_get_pvno(void)
|
||||
|
||||
static int execute_HDR_get0_senderNonce_test(CMP_HDR_TEST_FIXTURE *fixture)
|
||||
{
|
||||
int res = 0;
|
||||
X509_NAME *sender = X509_NAME_new();
|
||||
ASN1_OCTET_STRING *sn;
|
||||
|
||||
if (!TEST_ptr(sender))
|
||||
return 0;
|
||||
goto err;
|
||||
|
||||
X509_NAME_ADD(sender, "CN", "A common sender name");
|
||||
if (!TEST_int_eq(OSSL_CMP_CTX_set1_subjectName(fixture->cmp_ctx, sender),
|
||||
1))
|
||||
return 0;
|
||||
goto err;
|
||||
if (!TEST_int_eq(ossl_cmp_hdr_init(fixture->cmp_ctx, fixture->hdr),
|
||||
1))
|
||||
return 0;
|
||||
goto err;
|
||||
sn = ossl_cmp_hdr_get0_senderNonce(fixture->hdr);
|
||||
if (!TEST_int_eq(ASN1_OCTET_STRING_cmp(fixture->cmp_ctx->senderNonce, sn),
|
||||
0))
|
||||
return 0;
|
||||
goto err;
|
||||
|
||||
res = 1;
|
||||
err:
|
||||
X509_NAME_free(sender);
|
||||
return 1;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
static int test_HDR_get0_senderNonce(void)
|
||||
@ -102,23 +107,28 @@ static int test_HDR_get0_senderNonce(void)
|
||||
|
||||
static int execute_HDR_set1_sender_test(CMP_HDR_TEST_FIXTURE *fixture)
|
||||
{
|
||||
int res = 0;
|
||||
X509_NAME *x509name = X509_NAME_new();
|
||||
|
||||
if (!TEST_ptr(x509name))
|
||||
return 0;
|
||||
goto err;
|
||||
|
||||
X509_NAME_ADD(x509name, "CN", "A common sender name");
|
||||
if (!TEST_int_eq(ossl_cmp_hdr_set1_sender(fixture->hdr, x509name), 1))
|
||||
return 0;
|
||||
goto err;
|
||||
|
||||
if (!TEST_int_eq(fixture->hdr->sender->type, GEN_DIRNAME))
|
||||
return 0;
|
||||
goto err;
|
||||
|
||||
if (!TEST_int_eq(X509_NAME_cmp(fixture->hdr->sender->d.directoryName,
|
||||
x509name), 0))
|
||||
return 0;
|
||||
goto err;
|
||||
|
||||
res = 1;
|
||||
err:
|
||||
X509_NAME_free(x509name);
|
||||
return 1;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
static int test_HDR_set1_sender(void)
|
||||
@ -131,24 +141,28 @@ static int test_HDR_set1_sender(void)
|
||||
|
||||
static int execute_HDR_set1_recipient_test(CMP_HDR_TEST_FIXTURE *fixture)
|
||||
{
|
||||
int res = 0;
|
||||
X509_NAME *x509name = X509_NAME_new();
|
||||
|
||||
if (!TEST_ptr(x509name))
|
||||
return 0;
|
||||
goto err;
|
||||
|
||||
X509_NAME_ADD(x509name, "CN", "A common recipient name");
|
||||
if (!TEST_int_eq(ossl_cmp_hdr_set1_recipient(fixture->hdr, x509name), 1))
|
||||
return 0;
|
||||
goto err;
|
||||
|
||||
if (!TEST_int_eq(fixture->hdr->recipient->type, GEN_DIRNAME))
|
||||
return 0;
|
||||
goto err;
|
||||
|
||||
if (!TEST_int_eq(X509_NAME_cmp(fixture->hdr->recipient->d.directoryName,
|
||||
x509name), 0))
|
||||
return 0;
|
||||
goto err;
|
||||
|
||||
res = 1;
|
||||
err:
|
||||
X509_NAME_free(x509name);
|
||||
return 1;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
static int test_HDR_set1_recipient(void)
|
||||
@ -203,7 +217,7 @@ static int execute_HDR_set1_senderKID_test(CMP_HDR_TEST_FIXTURE *fixture)
|
||||
int res = 0;
|
||||
|
||||
if (!TEST_ptr(senderKID))
|
||||
return 0;
|
||||
goto err;
|
||||
|
||||
if (!TEST_int_eq(ASN1_OCTET_STRING_set(senderKID, rand_data,
|
||||
sizeof(rand_data)), 1))
|
||||
@ -265,7 +279,7 @@ static int execute_HDR_push1_freeText_test(CMP_HDR_TEST_FIXTURE *fixture)
|
||||
int res = 0;
|
||||
|
||||
if (!TEST_ptr(text))
|
||||
return 0;
|
||||
goto err;
|
||||
|
||||
if (!ASN1_STRING_set(text, "A free text", -1))
|
||||
goto err;
|
||||
@ -280,6 +294,7 @@ static int execute_HDR_push1_freeText_test(CMP_HDR_TEST_FIXTURE *fixture)
|
||||
res = 1;
|
||||
err:
|
||||
ASN1_UTF8STRING_free(text);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user