Make set_routerstatus_from_routerinfo() set IPv6 unspecified addresses

When creating a routerstatus (vote) from a routerinfo (descriptor),
set the IPv6 address to the unspecified IPv6 address, and explicitly
initialise the port to zero.

Also clarify the documentation for the function.

Fixes bug 24488; bugfix on 0.2.4.1-alpha.
This commit is contained in:
teor 2017-10-15 14:36:06 -04:00
parent cf3da63b90
commit f1a5000b98
No known key found for this signature in database
GPG Key ID: 740D9E39025272A2
2 changed files with 9 additions and 1 deletions

4
changes/bug24488 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes (directory authorities, IPv6):
- When creating a routerstatus (vote) from a routerinfo (descriptor),
set the IPv6 address to the unspecified IPv6 address, and explicitly
initialise the port to zero. Fixes bug 24488; bugfix on 0.2.4.1-alpha.

View File

@ -2219,7 +2219,8 @@ routers_make_ed_keys_unique(smartlist_t *routers)
}
/** Extract status information from <b>ri</b> and from other authority
* functions and store it in <b>rs</b>>.
* functions and store it in <b>rs</b>. <b>rs</b> is zeroed out before it is
* set.
*
* We assume that ri-\>is_running has already been set, e.g. by
* dirserv_set_router_is_running(ri, now);
@ -2285,6 +2286,9 @@ set_routerstatus_from_routerinfo(routerstatus_t *rs,
OR port and it's reachable so copy it to the routerstatus. */
tor_addr_copy(&rs->ipv6_addr, &ri->ipv6_addr);
rs->ipv6_orport = ri->ipv6_orport;
} else {
tor_addr_make_null(&rs->ipv6_addr, AF_INET6);
rs->ipv6_orport = 0;
}
if (options->TestingTorNetwork) {