From d688a40a0e7c1e8417ecdc463821e50cd1762715 Mon Sep 17 00:00:00 2001 From: Robert Ransom <rransom.8774@gmail.com> Date: Mon, 12 Dec 2011 11:25:55 -0800 Subject: [PATCH] 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(-) create mode 100644 changes/bug4702 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 -- GitLab