summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
Diffstat (limited to 'crypto')
-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;
}