summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2021-05-13 15:13:22 +0100
committerPauli <pauli@openssl.org>2021-05-15 11:39:50 +1000
commita113826eac59a1e897c679beaa5934542c46952d (patch)
tree81a653fe13b8bfedd9a5477e8d13e8e76ee8a04d
parent647a5dbf10227d65919b49d078da4eaca313f921 (diff)
Fix a memleak on an error path in the pkcs12 test helpers
Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15269)
-rw-r--r--test/helpers/pkcs12.c29
1 files changed, 12 insertions, 17 deletions
diff --git a/test/helpers/pkcs12.c b/test/helpers/pkcs12.c
index bdc8585535..ab877bca00 100644
--- a/test/helpers/pkcs12.c
+++ b/test/helpers/pkcs12.c
@@ -278,11 +278,9 @@ void start_contentinfo(PKCS12_BUILDER *pb)
void end_contentinfo(PKCS12_BUILDER *pb)
{
- if (pb->success) {
- if (pb->bags && !TEST_true(PKCS12_add_safe(&pb->safes, pb->bags, -1, 0, NULL))) {
+ if (pb->success && pb->bags != NULL) {
+ if (!TEST_true(PKCS12_add_safe(&pb->safes, pb->bags, -1, 0, NULL)))
pb->success = 0;
- return;
- }
}
sk_PKCS12_SAFEBAG_pop_free(pb->bags, PKCS12_SAFEBAG_free);
pb->bags = NULL;
@@ -291,19 +289,16 @@ void end_contentinfo(PKCS12_BUILDER *pb)
void end_contentinfo_encrypted(PKCS12_BUILDER *pb, const PKCS12_ENC *enc)
{
- if (pb->success) {
- if (pb->bags) {
- if (legacy) {
- if (!TEST_true(PKCS12_add_safe(&pb->safes, pb->bags, enc->nid, enc->iter, enc->pass))) {
- pb->success = 0;
- return;
- }
- } else {
- if (!TEST_true(PKCS12_add_safe_ex(&pb->safes, pb->bags, enc->nid, enc->iter, enc->pass, test_ctx, test_propq))) {
- pb->success = 0;
- return;
- }
- }
+ if (pb->success && pb->bags != NULL) {
+ if (legacy) {
+ if (!TEST_true(PKCS12_add_safe(&pb->safes, pb->bags, enc->nid,
+ enc->iter, enc->pass)))
+ pb->success = 0;
+ } else {
+ if (!TEST_true(PKCS12_add_safe_ex(&pb->safes, pb->bags, enc->nid,
+ enc->iter, enc->pass, test_ctx,
+ test_propq)))
+ pb->success = 0;
}
}
sk_PKCS12_SAFEBAG_pop_free(pb->bags, PKCS12_SAFEBAG_free);