From f7252d736da65ffa41cd81c6e0ec5ee58160eeb4 Mon Sep 17 00:00:00 2001 From: Neil Horman Date: Mon, 17 Jun 2024 14:12:46 -0400 Subject: [PATCH] Some minor nit corrections in the thread code for rcu Reviewed-by: Paul Dale Reviewed-by: Matt Caswell Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/24630) (cherry picked from commit d38d2642287ef9a22f20e662a19c217c227043a6) --- crypto/threads_none.c | 3 ++- crypto/threads_pthread.c | 2 ++ crypto/threads_win.c | 1 + test/threadstest.c | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/crypto/threads_none.c b/crypto/threads_none.c index e0387650fe..c2e6173bca 100644 --- a/crypto/threads_none.c +++ b/crypto/threads_none.c @@ -23,7 +23,8 @@ struct rcu_lock_st { struct rcu_cb_item *cb_items; }; -CRYPTO_RCU_LOCK *ossl_rcu_lock_new(int num_writers, OSSL_LIB_CTX *ctx) +CRYPTO_RCU_LOCK *ossl_rcu_lock_new(int num_writers, + ossl_unused OSSL_LIB_CTX *ctx) { struct rcu_lock_st *lock; diff --git a/crypto/threads_pthread.c b/crypto/threads_pthread.c index 2a6e7aaf53..0628db542f 100644 --- a/crypto/threads_pthread.c +++ b/crypto/threads_pthread.c @@ -409,7 +409,9 @@ static void ossl_rcu_free_local_data(void *arg) OSSL_LIB_CTX *ctx = arg; CRYPTO_THREAD_LOCAL *lkey = ossl_lib_ctx_get_rcukey(ctx); struct rcu_thr_data *data = CRYPTO_THREAD_get_local(lkey); + OPENSSL_free(data); + CRYPTO_THREAD_set_local(lkey, NULL); } void ossl_rcu_read_lock(CRYPTO_RCU_LOCK *lock) diff --git a/crypto/threads_win.c b/crypto/threads_win.c index a36e3752f6..5ee0751b04 100644 --- a/crypto/threads_win.c +++ b/crypto/threads_win.c @@ -190,6 +190,7 @@ static void ossl_rcu_free_local_data(void *arg) CRYPTO_THREAD_LOCAL *lkey = ossl_lib_ctx_get_rcukey(ctx); struct rcu_thr_data *data = CRYPTO_THREAD_get_local(lkey); OPENSSL_free(data); + CRYPTO_THREAD_set_local(lkey, NULL); } void ossl_rcu_read_lock(CRYPTO_RCU_LOCK *lock) diff --git a/test/threadstest.c b/test/threadstest.c index 2d05255132..b2b1ec2555 100644 --- a/test/threadstest.c +++ b/test/threadstest.c @@ -436,7 +436,7 @@ static int _torture_rcu(void) rcu_torture_result = 1; rcu_lock = ossl_rcu_lock_new(1, NULL); - if (!rcu_lock) + if (rcu_lock == NULL) goto out; TEST_info("Staring rcu torture");