diff options
author | Matt Caswell <matt@openssl.org> | 2021-05-13 15:13:22 +0100 |
---|---|---|
committer | Pauli <pauli@openssl.org> | 2021-05-15 11:39:50 +1000 |
commit | a113826eac59a1e897c679beaa5934542c46952d (patch) | |
tree | 81a653fe13b8bfedd9a5477e8d13e8e76ee8a04d | |
parent | 647a5dbf10227d65919b49d078da4eaca313f921 (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.c | 29 |
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); |