[tor-commits] [tor/master] Don't crash on startup of a dormant relay

nickm at torproject.org nickm at torproject.org
Mon Dec 12 20:14:46 UTC 2011


commit d688a40a0e7c1e8417ecdc463821e50cd1762715
Author: Robert Ransom <rransom.8774 at gmail.com>
Date:   Mon Dec 12 11:25:55 2011 -0800

    Don't crash on startup of a dormant relay
    
    If a relay is dormant at startup, it will call init_keys before
    crypto_set_tls_dh_prime.  This is bad.  Let's make it not so bad, because
    someday it *will* happen again.
---
 changes/bug4702     |    6 ++++++
 src/common/crypto.c |    7 +++++--
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/changes/bug4702 b/changes/bug4702
new file mode 100644
index 0000000..dcd3bfc
--- /dev/null
+++ b/changes/bug4702
@@ -0,0 +1,6 @@
+  o Minor bugfixes:
+
+    - Fix an assertion failure when a relay with accounting enabled
+      starts up while dormant.  Fixes bug 4702; bugfix on
+      0.2.3.9-alpha.
+
diff --git a/src/common/crypto.c b/src/common/crypto.c
index 2aa3fc9..673fc0c 100644
--- a/src/common/crypto.c
+++ b/src/common/crypto.c
@@ -2089,8 +2089,11 @@ init_dh_param(void)
   dh_param_p = circuit_dh_prime;
   dh_param_g = generator;
 
-  /* Should be already set by config.c. */
-  tor_assert(dh_param_p_tls);
+  /* Ensure that we have TLS DH parameters set up, too, even if we're
+     going to change them soon. */
+  if (!dh_param_p_tls) {
+    crypto_set_tls_dh_prime(NULL);
+  }
 }
 
 /** Number of bits to use when choosing the x or y value in a Diffie-Hellman



More information about the tor-commits mailing list