aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ransom <rransom.8774@gmail.com>2011-12-12 11:25:55 -0800
committerRobert Ransom <rransom.8774@gmail.com>2011-12-12 11:25:55 -0800
commitd688a40a0e7c1e8417ecdc463821e50cd1762715 (patch)
tree94a9ba24db437d66265c672f44e8ae40fb308d4f
parente4cebb76c5577b1a39b752cc694147e929662c4a (diff)
downloadtor-d688a40a0e7c1e8417ecdc463821e50cd1762715.tar.gz
tor-d688a40a0e7c1e8417ecdc463821e50cd1762715.zip
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.
-rw-r--r--changes/bug47026
-rw-r--r--src/common/crypto.c7
2 files changed, 11 insertions, 2 deletions
diff --git a/changes/bug4702 b/changes/bug4702
new file mode 100644
index 0000000000..dcd3bfcb49
--- /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 2aa3fc97a5..673fc0cc1f 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