From: Nick Mathewson Date: Wed, 8 Aug 2018 20:50:23 +0000 (-0400) Subject: When RunAsDaemon is set, crypto_postfork() as needed X-Git-Tag: tor-0.3.5.1-alpha~92^2~48 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4f300d547d65e50ac1fd635f8b22714c1544ba33;p=thirdparty%2Ftor.git When RunAsDaemon is set, crypto_postfork() as needed --- diff --git a/src/app/config/config.c b/src/app/config/config.c index 1b1889779d..eb935fd4ee 100644 --- a/src/app/config/config.c +++ b/src/app/config/config.c @@ -81,6 +81,7 @@ #include "core/mainloop/cpuworker.h" #include "lib/crypt_ops/crypto_rand.h" #include "lib/crypt_ops/crypto_util.h" +#include "lib/crypt_ops/crypto_init.h" #include "feature/dircache/dirserv.h" #include "feature/relay/dns.h" #include "core/or/dos.h" @@ -2026,7 +2027,9 @@ options_act(const or_options_t *old_options) /* Finish backgrounding the process */ if (options->RunAsDaemon) { /* We may be calling this for the n'th time (on SIGHUP), but it's safe. */ - finish_daemon(options->DataDirectory); + int forked = finish_daemon(options->DataDirectory); + if (forked) + crypto_postfork(); } /* See whether we need to enable/disable our once-a-second timer. */