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 "???".
This commit is contained in:
Nick Mathewson 2011-07-20 13:16:06 -04:00
parent 3e3aac5fd5
commit 718252b253
2 changed files with 8 additions and 2 deletions

4
changes/fmt_addr Normal file
View File

@ -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.

View File

@ -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