From: Neil Horman Date: Mon, 22 Jul 2024 21:17:54 +0000 (-0400) Subject: Fix CRYPTO_atomic_store X-Git-Tag: openssl-3.4.0-alpha1~259 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3190f5c06bd23ae4ddc659409e77070a6caa1539;p=thirdparty%2Fopenssl.git Fix CRYPTO_atomic_store If the implementation of this function falls to using a pthread lock to update a value, it should be a write lock, not a read lock Reviewed-by: Tomas Mraz Reviewed-by: Tom Cosgrove (Merged from https://github.com/openssl/openssl/pull/24969) --- diff --git a/crypto/threads_pthread.c b/crypto/threads_pthread.c index 14b1dbf6c20..86943ba4336 100644 --- a/crypto/threads_pthread.c +++ b/crypto/threads_pthread.c @@ -994,7 +994,7 @@ int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock) return 1; } # endif - if (lock == NULL || !CRYPTO_THREAD_read_lock(lock)) + if (lock == NULL || !CRYPTO_THREAD_write_lock(lock)) return 0; *dst = val; if (!CRYPTO_THREAD_unlock(lock))