summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2012-10-09 23:46:56 -0400
committerNick Mathewson <nickm@torproject.org>2012-10-09 23:46:56 -0400
commite2549c3b745313d6647c7e1d05025a84e1d33873 (patch)
treeae691b12bdc2bfe2ea19f58bde519986a190240a
parent0a3dfd0423e230bf5b29c21623480af777bb22c1 (diff)
parent721f99e495474fc7b80250ba52351b5771f0ed36 (diff)
downloadtor-e2549c3b745313d6647c7e1d05025a84e1d33873.tar.gz
tor-e2549c3b745313d6647c7e1d05025a84e1d33873.zip
Merge branch 'bug7014_023_squashed' into maint-0.2.3
-rw-r--r--changes/bug70145
-rw-r--r--src/or/circuitbuild.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/changes/bug7014 b/changes/bug7014
new file mode 100644
index 0000000000..1d39103a50
--- /dev/null
+++ b/changes/bug7014
@@ -0,0 +1,5 @@
+ o Minor bugfixes:
+ - Fix two cases in src/or/transports.c where we were calling
+ fmt_addr() twice in a parameter list. Bug found by David
+ Fifield. Fixes bug 7014; bugfix on 0.2.3.9-alpha.
+
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index a7d370c0ea..f8521c5cff 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -5310,19 +5310,22 @@ transport_resolve_conflicts(transport_t *t)
t_tmp->marked_for_removal = 0;
return 1;
} else { /* same name but different addrport */
+ char *new_transport_addr = tor_strdup(fmt_addr(&t->addr));
if (t_tmp->marked_for_removal) { /* marked for removal */
log_notice(LD_GENERAL, "You tried to add transport '%s' at '%s:%u' "
"but there was already a transport marked for deletion at "
"'%s:%u'. We deleted the old transport and registered the "
- "new one.", t->name, fmt_addr(&t->addr), t->port,
+ "new one.", t->name, new_transport_addr, t->port,
fmt_addr(&t_tmp->addr), t_tmp->port);
smartlist_remove(transport_list, t_tmp);
transport_free(t_tmp);
+ tor_free(new_transport_addr);
} else { /* *not* marked for removal */
log_notice(LD_GENERAL, "You tried to add transport '%s' at '%s:%u' "
"but the same transport already exists at '%s:%u'. "
- "Skipping.", t->name, fmt_addr(&t->addr), t->port,
+ "Skipping.", t->name, new_transport_addr, t->port,
fmt_addr(&t_tmp->addr), t_tmp->port);
+ tor_free(new_transport_addr);
return -1;
}
}