summaryrefslogtreecommitdiffstats
path: root/crypto/evp
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2021-10-16 10:22:42 +0200
committerRichard Levitte <levitte@openssl.org>2021-10-18 07:57:56 +0200
commit26d2016d5b81d78de90f075d630d38fe2badb84f (patch)
tree8b8f771606d5fc7932b2898e9d9feba6a9bd91de /crypto/evp
parent31287743c07cef63a2bc9b31a393a7e3b2527f88 (diff)
Fix lock leak in evp_keymgmt_util_export_to_provider()
Fixes #16847 Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16849) (cherry picked from commit fb0f65fff831d9294e34b6ef6f579c157db54b04)
Diffstat (limited to 'crypto/evp')
-rw-r--r--crypto/evp/keymgmt_lib.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/crypto/evp/keymgmt_lib.c b/crypto/evp/keymgmt_lib.c
index 32e4fbcbaa..875c9a83de 100644
--- a/crypto/evp/keymgmt_lib.c
+++ b/crypto/evp/keymgmt_lib.c
@@ -197,6 +197,7 @@ void *evp_keymgmt_util_export_to_provider(EVP_PKEY *pk, EVP_KEYMGMT *keymgmt)
/* Add the new export to the operation cache */
if (!evp_keymgmt_util_cache_keydata(pk, keymgmt, import_data.keydata)) {
+ CRYPTO_THREAD_unlock(pk->lock);
evp_keymgmt_freedata(keymgmt, import_data.keydata);
return NULL;
}