diff options
author | Nick Mathewson <nickm@torproject.org> | 2017-10-23 15:53:50 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2017-10-23 15:53:50 -0400 |
commit | 4dad6123cf7bd9f52225dc89eb0c2e3ae28da7b2 (patch) | |
tree | b7a7d97015245f7393e22dbee91cf42cdedb045b | |
parent | df4eba5c296caaf6a58835fe1fa113069d8631b8 (diff) | |
parent | b1bd1bf19f7e17a94cefaccb63e5608fda1df4e2 (diff) | |
download | tor-4dad6123cf7bd9f52225dc89eb0c2e3ae28da7b2.tar.gz tor-4dad6123cf7bd9f52225dc89eb0c2e3ae28da7b2.zip |
Merge branch 'maint-0.2.9' into release-0.2.9
-rw-r--r-- | changes/bug23874 | 3 | ||||
-rw-r--r-- | src/or/nodelist.c | 8 |
2 files changed, 11 insertions, 0 deletions
diff --git a/changes/bug23874 b/changes/bug23874 new file mode 100644 index 0000000000..bf6620553d --- /dev/null +++ b/changes/bug23874 @@ -0,0 +1,3 @@ + o Minor bugfixes (memory safety): + - Clear the address when node_get_prim_orport() returns early. + Fixes bug 23874; bugfix on 0.2.8.2-alpha. diff --git a/src/or/nodelist.c b/src/or/nodelist.c index 070e2e9e0d..0e9a651818 100644 --- a/src/or/nodelist.c +++ b/src/or/nodelist.c @@ -1031,6 +1031,14 @@ node_get_prim_orport(const node_t *node, tor_addr_port_t *ap_out) node_assert_ok(node); tor_assert(ap_out); + /* Clear the address, as a safety precaution if calling functions ignore the + * return value */ + tor_addr_make_null(&ap_out->addr, AF_INET); + ap_out->port = 0; + + /* Check ri first, because rewrite_node_address_for_bridge() updates + * node->ri with the configured bridge address. */ + RETURN_IPV4_AP(node->ri, or_port, ap_out); RETURN_IPV4_AP(node->rs, or_port, ap_out); /* Microdescriptors only have an IPv6 address */ |