Quellcode durchsuchen

Stop crashing when the controller asks us to resetconf more than
one config option at once. (Vidalia 0.0.11 does this.)
Backport candidate.


svn:r9545

Roger Dingledine vor 18 Jahren
Ursprung
Commit
01ddb05fba
2 geänderte Dateien mit 5 neuen und 1 gelöschten Zeilen
  1. 4 0
      ChangeLog
  2. 1 1
      src/or/control.c

+ 4 - 0
ChangeLog

@@ -3,6 +3,10 @@ Changes in version 0.1.2.8-alpha - 2007-??-??
     - When we start during an accounting interval before it's time to wake
     - When we start during an accounting interval before it's time to wake
       up, remember to wake up at the correct time. (May fix bug 342.)
       up, remember to wake up at the correct time. (May fix bug 342.)
 
 
+  o Major bugfixes (crashes):
+    - Stop crashing when the controller asks us to resetconf more than
+      one config option at once. (Vidalia 0.0.11 does this.)
+
   o Minor bugfixes (controller):
   o Minor bugfixes (controller):
     - Give the controller END_STREAM_REASON_DESTROY events _before_ we
     - Give the controller END_STREAM_REASON_DESTROY events _before_ we
       clear the corresponding on_circuit variable, and remember later that
       clear the corresponding on_circuit variable, and remember later that

+ 1 - 1
src/or/control.c

@@ -810,9 +810,9 @@ control_setconf_helper(control_connection_t *conn, uint32_t len, char *body,
         ++eq;
         ++eq;
       memcpy(outp, body, eq-body);
       memcpy(outp, body, eq-body);
       outp += (eq-body);
       outp += (eq-body);
-      *outp++ = ' ';
       body = eq+1;
       body = eq+1;
       if (*eq == '=') {
       if (*eq == '=') {
+        *outp++ = ' ';
         if (*body != '\"') {
         if (*body != '\"') {
           while (!TOR_ISSPACE(*body))
           while (!TOR_ISSPACE(*body))
             *outp++ = *body++;
             *outp++ = *body++;