Browse Source

Clear all control.c flags on control_free_all()

Fixes bug 25512.

(Cherry-picked from 3519d0c8086ede
Nick Mathewson 6 years ago
parent
commit
a95cfb8a58
2 changed files with 13 additions and 1 deletions
  1. 5 0
      changes/bug25512
  2. 8 1
      src/or/control.c

+ 5 - 0
changes/bug25512

@@ -0,0 +1,5 @@
+  o Minor bugfixes (restart-in-process):
+    - When shutting down, Tor now clears all the flags in the control.c
+      module. This should prevent a bug where authentication cookies
+      are not generated on restart. Fixes bug 25512; bugfix on 0.3.3.1-alpha.
+

+ 8 - 1
src/or/control.c

@@ -7610,6 +7610,14 @@ control_free_all(void)
     tor_event_free(flush_queued_events_event);
     flush_queued_events_event = NULL;
   }
+  bootstrap_percent = BOOTSTRAP_STATUS_UNDEF;
+  notice_bootstrap_percent = 0;
+  bootstrap_problems = 0;
+  authentication_cookie_is_set = 0;
+  global_event_mask = 0;
+  disable_log_messages = 0;
+  memset(last_sent_bootstrap_message, 0, sizeof(last_sent_bootstrap_message));
+  flush_queued_event_pending = 0;
 }
 
 #ifdef TOR_UNIT_TESTS
@@ -7620,4 +7628,3 @@ control_testing_set_global_event_mask(uint64_t mask)
   global_event_mask = mask;
 }
 #endif /* defined(TOR_UNIT_TESTS) */
-