Pārlūkot izejas kodu

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!
Sebastian Hahn 14 gadi atpakaļ
vecāks
revīzija
b4bd836f46
1 mainītis faili ar 3 papildinājumiem un 0 dzēšanām
  1. 3 0
      src/or/config.c

+ 3 - 0
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()) {