mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 23:53:32 +01:00
Issues with router_get_by_nickname()
https://trac.torproject.org/projects/tor/ticket/1859 Use router_get_by_digest() instead of router_get_by_hexdigest() in circuit_discard_optional_exit_enclaves() and rend_client_get_random_intro(), per Nick's comments. Using router_get_by_digest() in rend_client_get_random_intro() will break hidden services published by Tor versions pre 0.1.2.18 and 0.2.07-alpha as they only publish by nickname. This is acceptable however as these versions only publish to authority tor26 and don't work for versions in the 0.2.2.x series anyway.
This commit is contained in:
parent
2d8f7a8391
commit
0acd5e6208
@ -600,7 +600,7 @@ circuit_discard_optional_exit_enclaves(extend_info_t *info)
|
|||||||
!edge_conn->chosen_exit_retries)
|
!edge_conn->chosen_exit_retries)
|
||||||
continue;
|
continue;
|
||||||
r1 = router_get_by_nickname(edge_conn->chosen_exit_name, 0);
|
r1 = router_get_by_nickname(edge_conn->chosen_exit_name, 0);
|
||||||
r2 = router_get_by_hexdigest(info->identity_digest);
|
r2 = router_get_by_digest(info->identity_digest);
|
||||||
if (!r1 || !r2 || r1 != r2)
|
if (!r1 || !r2 || r1 != r2)
|
||||||
continue;
|
continue;
|
||||||
tor_assert(edge_conn->socks_request);
|
tor_assert(edge_conn->socks_request);
|
||||||
|
@ -755,7 +755,7 @@ rend_client_get_random_intro(const rend_data_t *rend_query)
|
|||||||
intro = smartlist_get(entry->parsed->intro_nodes, i);
|
intro = smartlist_get(entry->parsed->intro_nodes, i);
|
||||||
/* Do we need to look up the router or is the extend info complete? */
|
/* Do we need to look up the router or is the extend info complete? */
|
||||||
if (!intro->extend_info->onion_key) {
|
if (!intro->extend_info->onion_key) {
|
||||||
router = router_get_by_hexdigest(intro->extend_info->identity_digest);
|
router = router_get_by_digest(intro->extend_info->identity_digest);
|
||||||
if (!router) {
|
if (!router) {
|
||||||
log_info(LD_REND, "Unknown router with nickname '%s'; trying another.",
|
log_info(LD_REND, "Unknown router with nickname '%s'; trying another.",
|
||||||
intro->extend_info->nickname);
|
intro->extend_info->nickname);
|
||||||
|
Loading…
Reference in New Issue
Block a user