From http://archives.seul.org/tor/relays/Mar-2010/msg00006.html :
As I understand it, the bug should show up on relays that don't set
Address to an IP address (so they need to resolve their Address
line or their hostname to guess their IP address), and their
hostname or Address line fails to resolve -- at that point they'll
pick a random 4 bytes out of memory and call that their address. At
the same time, relays that *do* successfully resolve their address
will ignore the result, and only come up with a useful address if
their interface address happens to be a public IP address.
- When freeing a cipher, zero it out completely. We only zeroed
the first ptrsize bytes. Bugfix on tor-0.0.2pre8. Discovered
and patched by ekir. Fixes bug 1254.
+ - Avoid a bug that set IPs incorrectly on relays that did't set
+ Address to an IP address, when that address fails to resolve.
+ Fixes bug 1269.
+
o Minor bugfixes:
- Fix a dereference-then-NULL-check sequence when publishing
descriptors. Bugfix on tor-0.2.1.5-alpha. Discovered by ekir,
if (tor_inet_aton(hostname, &in) == 0) {
/* then we have to resolve it */
explicit_ip = 0;
- if(!tor_lookup_hostname(hostname, &addr)) {
+ if (tor_lookup_hostname(hostname, &addr)) {
uint32_t interface_ip;
if (explicit_hostname) {