[tor-commits] [tor/maint-0.2.2] Fix clear_trackhostexits_mapping() to actually work as advertised

nickm at torproject.org nickm at torproject.org
Wed Apr 27 21:23:29 UTC 2011


commit 34510f9278675e6e041503e425ca19a1fa0f3616
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed Apr 27 17:21:41 2011 -0400

    Fix clear_trackhostexits_mapping() to actually work as advertised
    
    Previously, it would remove every trackhostexits-derived mapping
    *from* xyz.<exitname>.exit; it was supposed to remove every
    trackhostexits-derived mapping *to* xyz.<exitname>.exit.
    
    Bugfix on 0.2.0.20-rc: fixes an XXX020 added while staring at bug-1090
    issues.
---
 changes/clear_trackexithost |    5 +++++
 src/or/connection_edge.c    |    4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/changes/clear_trackexithost b/changes/clear_trackexithost
new file mode 100644
index 0000000..701d369
--- /dev/null
+++ b/changes/clear_trackexithost
@@ -0,0 +1,5 @@
+  o Minor bugfixes:
+    - Fix a bug in the code where we could keep trying to use a
+      TrackHostExits-based mapping after we failed to reach the intended
+      destination node.  Bugfix on 0.2.0.20-rc.
+
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c
index 082cd5f..2c1196c 100644
--- a/src/or/connection_edge.c
+++ b/src/or/connection_edge.c
@@ -799,8 +799,8 @@ clear_trackexithost_mappings(const char *exitname)
   tor_strlower(suffix);
 
   STRMAP_FOREACH_MODIFY(addressmap, address, addressmap_entry_t *, ent) {
-    /* XXXX022 HEY!  Shouldn't this look at ent->new_address? */
-    if (ent->source == ADDRMAPSRC_TRACKEXIT && !strcmpend(address, suffix)) {
+    if (ent->source == ADDRMAPSRC_TRACKEXIT &&
+        !strcmpend(ent->new_address, suffix)) {
       addressmap_ent_remove(address, ent);
       MAP_DEL_CURRENT(address);
     }



More information about the tor-commits mailing list