commit c470a6d278c6340c2e2d10cac0796e6041b88dee
parent 1432cc8429b55ea561c551941ed54e5871050fa0
Author: Nick Mathewson <nickm@torproject.org>
Date: Wed, 6 Dec 2017 14:44:03 -0500
Merge remote-tracking branch 'teor/bug24488'
Diffstat:
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/changes/bug24488 b/changes/bug24488
@@ -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.
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
@@ -2228,7 +2228,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);
@@ -2294,6 +2295,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) {