From: Robert Ransom Date: Mon, 12 Dec 2011 19:25:55 +0000 (-0800) Subject: Don't crash on startup of a dormant relay X-Git-Tag: tor-0.2.3.10-alpha~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d688a40a0e7c1e8417ecdc463821e50cd1762715;p=thirdparty%2Ftor.git 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. --- 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