summaryrefslogtreecommitdiff
path: root/src/app
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2018-09-13 08:58:28 -0400
committerNick Mathewson <nickm@torproject.org>2018-09-13 08:58:28 -0400
commit75d6609eb1b1503f28054479c92d4f9ad6fe617d (patch)
tree42a087042343842434289a66d19dcd23e27aa0cf /src/app
parentbfc847255afb093b89dd82687d796e3e3c7fcb89 (diff)
downloadtor-75d6609eb1b1503f28054479c92d4f9ad6fe617d.tar.gz
tor-75d6609eb1b1503f28054479c92d4f9ad6fe617d.zip
Run crypto_prefork() before start_daemon().
Without this, RunAsDaemon breaks NSS. Fixes bug 27664; bug not in any released Tor.
Diffstat (limited to 'src/app')
-rw-r--r--src/app/config/config.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/app/config/config.c b/src/app/config/config.c
index 9882e74367..a557a2adbe 100644
--- a/src/app/config/config.c
+++ b/src/app/config/config.c
@@ -1417,6 +1417,8 @@ options_act_reversible(const or_options_t *old_options, char **msg)
* the subprocess. Libevent bases can't be reliably inherited across
* processes. */
if (running_tor && options->RunAsDaemon) {
+ if (! start_daemon_has_been_called())
+ crypto_prefork();
/* No need to roll back, since you can't change the value. */
if (start_daemon())
crypto_postfork();