backport candidate:

If not enough of our entry guards are available so we add a new
one, we might use the new one even if it overlapped with the
current circuit's exit relay (or its family). Anonymity bugfix
pointed out by rovv.


svn:r16698
This commit is contained in:
Roger Dingledine 2008-08-31 06:33:39 +00:00
parent 2efe3e7675
commit cfff21e78a
2 changed files with 11 additions and 2 deletions

View File

@ -1,4 +1,4 @@
Changes in version 0.2.1.5-alpha - 2008-08-?? Changes in version 0.2.1.5-alpha - 2008-09-??
o Major features [IPv6 support]: o Major features [IPv6 support]:
- Convert many internal address representations to optionally hold - Convert many internal address representations to optionally hold
IPv6 addresses. IPv6 addresses.
@ -18,6 +18,10 @@ Changes in version 0.2.1.5-alpha - 2008-08-??
a digest of all zeroes, or asks to extend back to the relay that a digest of all zeroes, or asks to extend back to the relay that
sent the extend cell, tear down the circuit. Ideas suggested sent the extend cell, tear down the circuit. Ideas suggested
by rovv. by rovv.
- If not enough of our entry guards are available so we add a new
one, we might use the new one even if it overlapped with the
current circuit's exit relay (or its family). Anonymity bugfix
pointed out by rovv.
o Minor bugfixes: o Minor bugfixes:
- Recover 3-7 bytes that were wasted per memory chunk. Fixes bug - Recover 3-7 bytes that were wasted per memory chunk. Fixes bug

View File

@ -2476,8 +2476,13 @@ choose_random_entry(cpath_build_state_t *state)
* be a long time til we get it. -RD */ * be a long time til we get it. -RD */
r = add_an_entry_guard(NULL, 0); r = add_an_entry_guard(NULL, 0);
if (r) { if (r) {
smartlist_add(live_entry_guards, r);
entry_guards_changed(); entry_guards_changed();
/* XXX we start over here in case the new node we added shares
* a family with our exit node. There's a chance that we'll just
* load up on entry guards here, if the network we're using is
* one big family. Perhaps we should teach add_an_entry_guard()
* to understand nodes-to-avoid-if-possible? -RD */
goto retry;
} }
} }
if (!r && need_uptime) { if (!r && need_uptime) {