Module: kamailio
Branch: 5.6
Commit: a08562b2e56c89900220b7ed15c9ccd12655d9a6
URL: 
https://github.com/kamailio/kamailio/commit/a08562b2e56c89900220b7ed15c9ccd12655d9a6

Author: S-P Chan <shihping.c...@gmail.com>
Committer: S-P Chan <shihping.c...@gmail.com>
Date: 2024-03-23T21:38:18+08:00

tls: force thread-locals clean-up for libssl3

- minimal thread-locals patch as 5.6.x is packaged for distros
  that use libssl3 GH#3791
- simplified version of tls rework in 5.8.x

---

Modified: src/modules/tls/tls_mod.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/a08562b2e56c89900220b7ed15c9ccd12655d9a6.diff
Patch: 
https://github.com/kamailio/kamailio/commit/a08562b2e56c89900220b7ed15c9ccd12655d9a6.patch

---

diff --git a/src/modules/tls/tls_mod.c b/src/modules/tls/tls_mod.c
index 499a9a77aea..3805accf70a 100644
--- a/src/modules/tls/tls_mod.c
+++ b/src/modules/tls/tls_mod.c
@@ -306,6 +306,17 @@ static tls_domains_cfg_t* tls_use_modparams(void)
 }
 #endif
 
+/* unconditionally perform thread-local clean-up
+ * especially needed with libssl3 uses
+ * (bookworm/jammy/noble/el9)
+ */
+static void fork_child(void)
+{
+    for(int k = 0; k < 16; k++) {
+        if(pthread_getspecific(k) != 0)
+            pthread_setspecific(k, 0x0);
+    }
+}
 
 static int mod_init(void)
 {
@@ -407,6 +418,9 @@ static int mod_init(void)
        if(sr_tls_event_callback.s == NULL || sr_tls_event_callback.len <= 0) {
                tls_lookup_event_routes();
        }
+        /* minimal fix for libssl 1.1.1/3.x uses
+         */
+        pthread_atfork(NULL, NULL, &fork_child);
        return 0;
 error:
        tls_h_mod_destroy_f();
@@ -635,11 +649,6 @@ int mod_register(char *path, int *dlflags, void *p1, void 
*p2)
 
        register_tls_hooks(&tls_h);
 
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-       LM_DBG("setting cryptorand random engine\n");
-       RAND_set_rand_method(RAND_ksr_cryptorand_method());
-#endif
-
        sr_kemi_modules_add(sr_kemi_tls_exports);
 
        return 0;

_______________________________________________
Kamailio (SER) - Development Mailing List
To unsubscribe send an email to sr-dev-le...@lists.kamailio.org

Reply via email to