tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit f49876d66efbc5679ba7d9d9c6538c763b8e06b5
parent 08ce39fb0fd50ab0da4201201fa07e7776cb09e7
Author: Nick Mathewson <nickm@torproject.org>
Date:   Thu, 30 Nov 2017 12:06:21 -0500

Merge branch 'trove-2017-012_025' into maint-0.2.5

Diffstat:
Achanges/trove-2017-012-part1 | 6++++++
Msrc/or/routerlist.c | 5++++-
2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/changes/trove-2017-012-part1 b/changes/trove-2017-012-part1 @@ -0,0 +1,6 @@ + o Major bugfixes (security, relay): + - When running as a relay, make sure that we never build a path through + ourselves, even in the case where we have somehow lost the version of + our descriptor appearing in the consensus. Fixes part of bug 21534; + bugfix on 0.2.0.1-alpha. This issue is also tracked as TROVE-2017-012 + and CVE-2017-8822. diff --git a/src/or/routerlist.c b/src/or/routerlist.c @@ -2411,7 +2411,10 @@ router_choose_random_node(smartlist_t *excludedsmartlist, }); } - if ((r = routerlist_find_my_routerinfo())) + /* If the node_t is not found we won't be to exclude ourself but we + * won't be able to pick ourself in router_choose_random_node() so + * this is fine to at least try with our routerinfo_t object. */ + if ((r = router_get_my_routerinfo())) routerlist_add_node_and_family(excludednodes, r); router_add_running_nodes_to_smartlist(sl, allow_invalid,