@@ -46,7 +46,7 @@ index a19575af37..4f339f4175 100644
4646
4747 DEFINE_RUN_ONCE_STATIC(do_init_module_list_lock)
4848 {
49- - module_list_lock = ossl_rcu_lock_new(1);
49+ - module_list_lock = ossl_rcu_lock_new(1, NULL );
5050+ module_list_lock = CRYPTO_THREAD_lock_new();
5151 if (module_list_lock == NULL) {
5252 ERR_raise(ERR_LIB_CONF, ERR_R_CRYPTO_LIB);
@@ -199,7 +199,7 @@ index a19575af37..4f339f4175 100644
199199 return ret;
200200
201201 err:
202- @@ -507,46 +482,30 @@ void CONF_modules_unload(int all)
202+ @@ -507,47 +482,31 @@ void CONF_modules_unload(int all)
203203 {
204204 int i;
205205 CONF_MODULE *md;
@@ -214,14 +214,15 @@ index a19575af37..4f339f4175 100644
214214-
215215- old_modules = ossl_rcu_deref(&supported_modules);
216216- new_modules = sk_CONF_MODULE_dup(old_modules);
217- - to_delete = sk_CONF_MODULE_new_null();
218217-
219218- if (new_modules == NULL) {
220219- ossl_rcu_write_unlock(module_list_lock);
221220+ if (!CRYPTO_THREAD_write_lock(module_list_lock))
222221 return;
223222- }
224223
224+ - to_delete = sk_CONF_MODULE_new_null();
225+
225226 /* unload modules in reverse order */
226227- for (i = sk_CONF_MODULE_num(new_modules) - 1; i >= 0; i--) {
227228- md = sk_CONF_MODULE_value(new_modules, i);
@@ -255,7 +256,7 @@ index a19575af37..4f339f4175 100644
255256 }
256257
257258 /* unload a single module */
258- @@ -562 ,27 +521 ,23 @@ static void module_free(CONF_MODULE *md)
259+ @@ -563 ,27 +522 ,23 @@ static void module_free(CONF_MODULE *md)
259260 static int conf_modules_finish_int(void)
260261 {
261262 CONF_IMODULE *imod;
0 commit comments