]> granicus.if.org Git - apache/commitdiff
PR60947: try to warn affected users...
authorJacob Champion <jchampion@apache.org>
Tue, 18 Apr 2017 00:19:34 +0000 (00:19 +0000)
committerJacob Champion <jchampion@apache.org>
Tue, 18 Apr 2017 00:19:34 +0000 (00:19 +0000)
...but at the moment, this won't actually get logged unless you're
running in debug mode, due to an unrelated bug (PR60999).

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/trunk-openssl-threadid@1791733 13f79535-47bb-0310-9956-ffa450edef68

modules/ssl/ssl_util.c

index 488df0e10262084e267912d6ef272b1e0d0ccf3e..1ae93acd19c9ae349894f8bd5da03e816fb9883d 100644 (file)
@@ -442,6 +442,16 @@ void ssl_util_thread_id_setup(apr_pool_t *p)
      * better not get loaded into a different address during a restart. See
      * PR60947. */
     CRYPTO_THREADID_set_callback(ssl_util_thr_id);
+
+    if (CRYPTO_THREADID_get_callback() != ssl_util_thr_id) {
+        /* XXX Unfortunately this doesn't seem to get logged unless you're
+         * running in one-process mode, due to PR60999. */
+        ap_log_perror(APLOG_MARK, APLOG_CRIT, 0, p, APLOGNO()
+            "OpenSSL's THREADID callback was already set to another address, "
+            "and the server is probably going to crash. See bug #60947 for "
+            "more details. You may need to recompile or upgrade either OpenSSL "
+            "or httpd.");
+    }
 #endif
 
     apr_pool_cleanup_register(p, NULL, ssl_util_thr_id_cleanup,