diff options
author | Matt Caswell <matt@openssl.org> | 2023-05-10 17:27:03 +0200 |
---|---|---|
committer | Tomas Mraz <tomas@openssl.org> | 2023-05-29 16:08:34 +0200 |
commit | 36424806d699233b9a90a3a97fff3011828e2548 (patch) | |
tree | 72ee30300c18d7fddde134a2792acad601c91124 /include/crypto/evp.h | |
parent | x509: Handle ossl_policy_level_add_node errors (diff) | |
download | openssl-36424806d699233b9a90a3a97fff3011828e2548.tar.xz openssl-36424806d699233b9a90a3a97fff3011828e2548.zip |
Don't take a write lock when freeing an EVP_PKEY
When freeing the last reference to an EVP_PKEY there is no point in
taking the lock for the key. It is the last reference and is being freed
so must only be being used by a single thread.
This should not have been the source of any contention so its unclear to
what extent this will improve performance. But we should not be locking
when we don't need to.
Partially fixes #20286
Reviewed-by: Hugo Landau <hlandau@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/20932)
Diffstat (limited to '')
-rw-r--r-- | include/crypto/evp.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/crypto/evp.h b/include/crypto/evp.h index 55b44cd835..4f7f0c6eea 100644 --- a/include/crypto/evp.h +++ b/include/crypto/evp.h @@ -785,7 +785,7 @@ void *evp_keymgmt_util_export_to_provider(EVP_PKEY *pk, EVP_KEYMGMT *keymgmt, OP_CACHE_ELEM *evp_keymgmt_util_find_operation_cache(EVP_PKEY *pk, EVP_KEYMGMT *keymgmt, int selection); -int evp_keymgmt_util_clear_operation_cache(EVP_PKEY *pk, int locking); +int evp_keymgmt_util_clear_operation_cache(EVP_PKEY *pk); int evp_keymgmt_util_cache_keydata(EVP_PKEY *pk, EVP_KEYMGMT *keymgmt, void *keydata, int selection); void evp_keymgmt_util_cache_keyinfo(EVP_PKEY *pk); |