]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
store: update to structure based atomics
authorPauli <pauli@openssl.org>
Wed, 21 Jun 2023 23:36:37 +0000 (09:36 +1000)
committerPauli <pauli@openssl.org>
Sat, 1 Jul 2023 11:18:25 +0000 (21:18 +1000)
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21260)

crypto/store/store_local.h
crypto/store/store_meth.c

index bca6516b04e1c2e63cae17e7829bb9a027f7ef16..6526a7260a02a8d451281ccddd256289d6dcac91 100644 (file)
@@ -103,7 +103,6 @@ struct ossl_store_loader_st {
     const char *description;
 
     CRYPTO_REF_COUNT refcnt;
-    CRYPTO_RWLOCK *lock;
 
     OSSL_FUNC_store_open_fn *p_open;
     OSSL_FUNC_store_attach_fn *p_attach;
index ab1016853e8b9285536a487749114277c263077c..e9f5a0eb8ab04e3c801e98f1bcbfc0b66dfe811b 100644 (file)
@@ -21,7 +21,7 @@ int OSSL_STORE_LOADER_up_ref(OSSL_STORE_LOADER *loader)
     int ref = 0;
 
     if (loader->prov != NULL)
-        CRYPTO_UP_REF(&loader->refcnt, &ref, loader->lock);
+        CRYPTO_UP_REF(&loader->refcnt, &ref);
     return 1;
 }
 
@@ -30,11 +30,11 @@ void OSSL_STORE_LOADER_free(OSSL_STORE_LOADER *loader)
     if (loader != NULL && loader->prov != NULL) {
         int i;
 
-        CRYPTO_DOWN_REF(&loader->refcnt, &i, loader->lock);
+        CRYPTO_DOWN_REF(&loader->refcnt, &i);
         if (i > 0)
             return;
         ossl_provider_free(loader->prov);
-        CRYPTO_THREAD_lock_free(loader->lock);
+        CRYPTO_FREE_REF(&loader->refcnt);
     }
     OPENSSL_free(loader);
 }
@@ -48,13 +48,12 @@ static OSSL_STORE_LOADER *new_loader(OSSL_PROVIDER *prov)
     OSSL_STORE_LOADER *loader;
 
     if ((loader = OPENSSL_zalloc(sizeof(*loader))) == NULL
-        || (loader->lock = CRYPTO_THREAD_lock_new()) == NULL) {
+        || !CRYPTO_NEW_REF(&loader->refcnt, 1)) {
         OPENSSL_free(loader);
         return NULL;
     }
     loader->prov = prov;
     ossl_provider_up_ref(prov);
-    loader->refcnt = 1;
 
     return loader;
 }