mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-01 08:03:31 +01:00
prevent same entry and exit for insane edge case
This commit is contained in:
parent
4f730e4f3f
commit
a2727f6249
6
changes/bug2403
Normal file
6
changes/bug2403
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
o Minor bugfixes:
|
||||||
|
- In the special case where you configure a public exit relay as your
|
||||||
|
bridge, Tor would be willing to use that exit relay as the last
|
||||||
|
hop in your circuit as well. Now we fail that circuit instead.
|
||||||
|
Bugfix on 0.2.0.12-alpha. Fixes bug 2403. Reported by "piebeer".
|
||||||
|
|
@ -4063,7 +4063,6 @@ choose_random_entry(cpath_build_state_t *state)
|
|||||||
int preferred_min, consider_exit_family = 0;
|
int preferred_min, consider_exit_family = 0;
|
||||||
|
|
||||||
if (chosen_exit) {
|
if (chosen_exit) {
|
||||||
smartlist_add(exit_family, chosen_exit);
|
|
||||||
routerlist_add_family(exit_family, chosen_exit);
|
routerlist_add_family(exit_family, chosen_exit);
|
||||||
consider_exit_family = 1;
|
consider_exit_family = 1;
|
||||||
}
|
}
|
||||||
@ -4086,6 +4085,8 @@ choose_random_entry(cpath_build_state_t *state)
|
|||||||
r = entry_is_live(entry, need_uptime, need_capacity, 0, &msg);
|
r = entry_is_live(entry, need_uptime, need_capacity, 0, &msg);
|
||||||
if (!r)
|
if (!r)
|
||||||
continue; /* down, no point */
|
continue; /* down, no point */
|
||||||
|
if (r == chosen_exit)
|
||||||
|
continue; /* don't pick the same node for entry and exit */
|
||||||
if (consider_exit_family && smartlist_isin(exit_family, r))
|
if (consider_exit_family && smartlist_isin(exit_family, r))
|
||||||
continue; /* avoid relays that are family members of our exit */
|
continue; /* avoid relays that are family members of our exit */
|
||||||
if (options->EntryNodes &&
|
if (options->EntryNodes &&
|
||||||
|
Loading…
Reference in New Issue
Block a user