Module: kamailio
Branch: 5.7
Commit: bbbcb27040c632642c50209455efbb8225888723
URL:
https://github.com/kamailio/kamailio/commit/bbbcb27040c632642c50209455efbb8…
Author: S-P Chan <shihping.chan(a)gmail.com>
Committer: S-P Chan <shihping.chan(a)gmail.com>
Date: 2024-01-14T14:44:47+08:00
tls: remove thread-enablement on EVP_RAND_CTX
- with late initialisation it is not necessary to enable thread locking
on EVP_RAND_CTX
- the function remains but is not used in case requirements change
with OpenSSL >= 3.2
(cherry-pick from 8dffc45ee91aeed839efb38d17040359dcac953a)
---
Modified: src/modules/tls/tls_init.c
---
Diff:
https://github.com/kamailio/kamailio/commit/bbbcb27040c632642c50209455efbb8…
Patch:
https://github.com/kamailio/kamailio/commit/bbbcb27040c632642c50209455efbb8…
---
diff --git a/src/modules/tls/tls_init.c b/src/modules/tls/tls_init.c
index 65f5ae72c65..629f69ad6b3 100644
--- a/src/modules/tls/tls_init.c
+++ b/src/modules/tls/tls_init.c
@@ -731,6 +731,12 @@ int tls_pre_init(void)
* - executed before any mod_init()
*/
#if OPENSSL_VERSION_NUMBER >= 0x030000000L
+/*
+ * With late initialisation it is not necessary to
+ * enable threading on the EVP_RAND_CTX. This function
+ * left here in case more complex requirements arise in
+ * OpenSSL >= 3.2.
+ */
long tls_h_mod_randctx(void *) {
do {
OSSL_LIB_CTX *osslglobal = NULL;
@@ -768,7 +774,7 @@ long tls_h_mod_randctx(void *) {
return 0L;
}
-#endif
+#endif /* OPENSSL_VERSION_NUMBER */
int tls_h_mod_pre_init_f(void)
{
@@ -794,14 +800,21 @@ int tls_h_mod_pre_init_f(void)
SSL_load_error_strings();
#endif
+#if 0
#if OPENSSL_VERSION_NUMBER >= 0x030000000L
+ /*
+ * With deferred initialisation it is not necessary to enable threading
+ * on the EVP_RAND_CTX. We leave this block here as an example of how
+ * to do it in case of future requirements.
+ */
pthread_t tid;
long rl;
pthread_create(&tid, NULL, (void *(*)(void *))tls_h_mod_randctx, NULL);
pthread_join(tid, (void **)&rl);
if ((int)rl)
return (int)rl;
-#endif
+#endif /* OPENSSL_VERSION_NUMBER */
+#endif /* 0 */
tls_mod_preinitialized = 1;
return 0;