summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2011-11-30 12:41:08 -0500
committerNick Mathewson <nickm@torproject.org>2011-11-30 12:41:08 -0500
commit29db095a35db715f1d84aacae24f00b54aad2507 (patch)
treea759e374f7b1a46d231eeb1691435e3ee59a4fb3
parent9da99b4939b66b001cf73b1f12fb71c745461591 (diff)
parent3ebe960f3f734322ea3ea471ca6abceb245ca322 (diff)
downloadtor-29db095a35db715f1d84aacae24f00b54aad2507.tar.gz
tor-29db095a35db715f1d84aacae24f00b54aad2507.zip
Merge remote-tracking branch 'origin/maint-0.2.2'
-rw-r--r--changes/bug45295
-rw-r--r--src/common/address.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/changes/bug4529 b/changes/bug4529
new file mode 100644
index 0000000000..89d10b2f6b
--- /dev/null
+++ b/changes/bug4529
@@ -0,0 +1,5 @@
+ o Minor bufixes:
+ - If we had ever tried to call tor_addr_to_str on an address of
+ unknown type, we would have done a strdup on an uninitialized
+ buffer. Now we won't. Fixes bug 4529; bugfix on 0.2.1.3-alpha.
+ Reported by "troll_un".
diff --git a/src/common/address.c b/src/common/address.c
index f40e428cce..ab056f427e 100644
--- a/src/common/address.c
+++ b/src/common/address.c
@@ -962,8 +962,11 @@ char *
tor_dup_addr(const tor_addr_t *addr)
{
char buf[TOR_ADDR_BUF_LEN];
- tor_addr_to_str(buf, addr, sizeof(buf), 0);
- return tor_strdup(buf);
+ if (tor_addr_to_str(buf, addr, sizeof(buf), 0)) {
+ return tor_strdup(buf);
+ } else {
+ return tor_strdup("<unknown address type>");
+ }
}
/** Return a string representing the address <b>addr</b>. This string is