summaryrefslogtreecommitdiffstats
path: root/crypto/encode_decode/decoder_pkey.c
diff options
context:
space:
mode:
authorPauli <ppzgs1@gmail.com>2021-03-18 13:09:09 +1000
committerPauli <ppzgs1@gmail.com>2021-03-20 10:08:00 +1000
commit07aa88cccf506c6143ec882a5dd93cd97483ecc2 (patch)
treede43f8084296040d8869a10dfc0275aaf85b5282 /crypto/encode_decode/decoder_pkey.c
parent77b8b49bdd01e2b1162b337941ebc70fef7030c1 (diff)
decoder: fix Coverity 1473236 & 1473386: resource leaks
Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/14596)
Diffstat (limited to 'crypto/encode_decode/decoder_pkey.c')
-rw-r--r--crypto/encode_decode/decoder_pkey.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/crypto/encode_decode/decoder_pkey.c b/crypto/encode_decode/decoder_pkey.c
index 38764b418b..08deb2d088 100644
--- a/crypto/encode_decode/decoder_pkey.c
+++ b/crypto/encode_decode/decoder_pkey.c
@@ -312,6 +312,7 @@ int ossl_decoder_ctx_setup_for_pkey(OSSL_DECODER_CTX *ctx,
EVP_KEYMGMT_free(keymgmt);
}
sk_EVP_KEYMGMT_free(keymgmts);
+ keymgmts = NULL;
/*
* Finally, find all decoders that have any keymgmt of the collected
@@ -325,6 +326,7 @@ int ossl_decoder_ctx_setup_for_pkey(OSSL_DECODER_CTX *ctx,
OSSL_DECODER_do_all_provided(libctx,
collect_decoder, &collect_decoder_data);
sk_OPENSSL_CSTRING_free(names);
+ names = NULL;
if (collect_decoder_data.error_occurred)
goto err;
@@ -343,6 +345,9 @@ int ossl_decoder_ctx_setup_for_pkey(OSSL_DECODER_CTX *ctx,
ok = 1;
err:
decoder_clean_pkey_construct_arg(process_data);
+ sk_EVP_KEYMGMT_pop_free(keymgmts, EVP_KEYMGMT_free);
+ sk_OPENSSL_CSTRING_free(names);
+
return ok;
}