commit 718252b253049f84fefa14e212cf560838e6607c Author: Nick Mathewson nickm@torproject.org Date: Wed Jul 20 13:16:06 2011 -0400
Check return value in fmt_addr
Previously, if tor_addr_to_str() returned NULL, we would reuse the last value returned by fmt_addr(). (This could happen if we were erroneously asked to format an AF_UNSPEC address.) Now instead we return "???". --- changes/fmt_addr | 4 ++++ src/common/address.c | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/changes/fmt_addr b/changes/fmt_addr new file mode 100644 index 0000000..b88c9e1 --- /dev/null +++ b/changes/fmt_addr @@ -0,0 +1,4 @@ + o Minor bugfixes: + - When unable to format an address as a string, report its value + as "???" rather than reusing the last formatted address. Bugfix + on 0.2.1.5-alpha. diff --git a/src/common/address.c b/src/common/address.c index 1c72539..7fc7301 100644 --- a/src/common/address.c +++ b/src/common/address.c @@ -958,8 +958,10 @@ fmt_addr(const tor_addr_t *addr) { static char buf[TOR_ADDR_BUF_LEN]; if (!addr) return "<null>"; - tor_addr_to_str(buf, addr, sizeof(buf), 0); - return buf; + if (tor_addr_to_str(buf, addr, sizeof(buf), 0)) + return buf; + else + return "???"; }
/** Convert the string in <b>src</b> to a tor_addr_t <b>addr</b>. The string