[tor-commits] [tor/release-0.2.3] Refer to the correct variable in a loop when parsing entry guard state

arma at torproject.org arma at torproject.org
Tue Jul 31 09:13:20 UTC 2012


commit 93b730175566de2dcf783b1ce4b3fd87a6f7375e
Author: Nick Mathewson <nickm at torproject.org>
Date:   Mon Jul 16 11:49:45 2012 -0400

    Refer to the correct variable in a loop when parsing entry guard state
    
    Fixes bug 6397 and coverity issue 709599. Bugfix on 0.2.3.17-beta.
---
 changes/bug6397       |    4 ++++
 src/or/circuitbuild.c |   10 +++++-----
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/changes/bug6397 b/changes/bug6397
new file mode 100644
index 0000000..23d8359
--- /dev/null
+++ b/changes/bug6397
@@ -0,0 +1,4 @@
+  o Major bugfixes:
+    - When disabling guards for having too high a proportion of failed
+      circuits, make sure to look at each guard. Fix for bug 6397; bugfix
+      on 0.2.3.17-beta.
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index 6d1e4e7..714bbca 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -4728,8 +4728,7 @@ entry_guards_parse_state(or_state_t *state, int set, char **msg)
     }
   }
 
-  SMARTLIST_FOREACH(new_entry_guards, entry_guard_t *, e,
-   {
+  SMARTLIST_FOREACH_BEGIN(new_entry_guards, entry_guard_t *, e) {
      char *sp;
      char *val = digestmap_get(added_by, e->identity);
      if (val && (sp = strchr(val, ' '))) {
@@ -4747,9 +4746,10 @@ entry_guards_parse_state(or_state_t *state, int set, char **msg)
          e->chosen_on_date = time(NULL) - crypto_rand_int(3600*24*30);
        }
      }
-     if (node->path_bias_disabled && !node->bad_since)
-       node->bad_since = time(NULL);
-   });
+     if (e->path_bias_disabled && !e->bad_since)
+       e->bad_since = time(NULL);
+    }
+  SMARTLIST_FOREACH_END(e);
 
   if (*msg || !set) {
     SMARTLIST_FOREACH(new_entry_guards, entry_guard_t *, e,





More information about the tor-commits mailing list