[tor-commits] [tor/master] Make set_routerstatus_from_routerinfo() set IPv6 unspecified addresses

nickm at torproject.org nickm at torproject.org
Wed Dec 6 19:44:07 UTC 2017


commit f1a5000b98c4f0e5ee1618165bde533aaff0fd79
Author: teor <teor2345 at gmail.com>
Date:   Sun Oct 15 14:36:06 2017 -0400

    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.
---
 changes/bug24488 | 4 ++++
 src/or/dirserv.c | 6 +++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/changes/bug24488 b/changes/bug24488
new file mode 100644
index 000000000..b8094e29e
--- /dev/null
+++ 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
index 432fe6ae2..19d2541b0 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -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) {





More information about the tor-commits mailing list