Browse Source

Make changes in server_mode() affect workers; fix a crash.

Without this fix, changes from client to bridge don't trigger
transition_affects_workers(), so we would never have actually
initialized the cpuworkers.

Fixes bug 23693.  Bugfix on 3bcdb26267502e0 0.2.6.3-alpha, which
fixed bug 14901 in the general case, but not on the case where
public_server_mode() did not change.
Nick Mathewson 6 years ago
parent
commit
c50c98ba6a
2 changed files with 7 additions and 0 deletions
  1. 6 0
      changes/bug23693
  2. 1 0
      src/or/config.c

+ 6 - 0
changes/bug23693

@@ -0,0 +1,6 @@
+  o Minor bugfixes (relay, crash):
+    - Avoid a crash when transitioning from client mode to bridge mode.
+      Previously, we would launch the worker threads whenever our "public
+      server" mode changed, but not when our "server" mode changed.
+      Fixes bug 23693; bugfix on 0.2.6.3-alpha.
+

+ 1 - 0
src/or/config.c

@@ -4453,6 +4453,7 @@ options_transition_affects_workers(const or_options_t *old_options,
                                        new_options->ServerDNSSearchDomains ||
       old_options->SafeLogging_ != new_options->SafeLogging_ ||
       old_options->ClientOnly != new_options->ClientOnly ||
+      server_mode(old_options) != server_mode(new_options) ||
       public_server_mode(old_options) != public_server_mode(new_options) ||
       !config_lines_eq(old_options->Logs, new_options->Logs) ||
       old_options->LogMessageDomains != new_options->LogMessageDomains)