From: Sebastian Hahn Date: Tue, 11 Oct 2011 00:40:06 +0000 (+0200) Subject: Consider hibernation before dropping privs X-Git-Tag: tor-0.2.3.6-alpha~33 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b4bd836f46549b6263c8c55eb3bc127884b72340;p=thirdparty%2Ftor.git Consider hibernation before dropping privs Without this patch, Tor wasn't sure whether it would be hibernating or not, so it postponed opening listeners until after the privs had been dropped. This doesn't work so well for low ports. Bug was introduced in the fix for bug 2003. Fixes bug 4217, reported by Zax and katmagic. Thanks! --- diff --git a/src/or/config.c b/src/or/config.c index 2705ba5a16..1304c469f6 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -1080,6 +1080,9 @@ options_act_reversible(const or_options_t *old_options, char **msg) if (parse_client_ports(options, 0, msg, &n_client_ports)) return -1; + /* Set the hibernation state appropriately.*/ + consider_hibernation(time(NULL)); + /* Launch the listeners. (We do this before we setuid, so we can bind to * ports under 1024.) We don't want to rebind if we're hibernating. */ if (!we_are_hibernating()) {