[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] r9671: Backport: Fix a bug found by Udo van den Heuvel: avoid an as (in tor/branches/tor-0_1_1-patches: . src/or)
- To: or-cvs@xxxxxxxxxxxxx
- Subject: [or-cvs] r9671: Backport: Fix a bug found by Udo van den Heuvel: avoid an as (in tor/branches/tor-0_1_1-patches: . src/or)
- From: nickm@xxxxxxxx
- Date: Tue, 27 Feb 2007 19:23:24 -0500 (EST)
- Delivered-to: archiver@seul.org
- Delivered-to: or-cvs-outgoing@seul.org
- Delivered-to: or-cvs@seul.org
- Delivery-date: Tue, 27 Feb 2007 19:23:30 -0500
- Reply-to: or-talk@xxxxxxxxxxxxx
- Sender: owner-or-cvs@xxxxxxxxxxxxx
Author: nickm
Date: 2007-02-27 19:23:22 -0500 (Tue, 27 Feb 2007)
New Revision: 9671
Modified:
tor/branches/tor-0_1_1-patches/
tor/branches/tor-0_1_1-patches/ChangeLog
tor/branches/tor-0_1_1-patches/src/or/circuitbuild.c
Log:
r11972@catbus: nickm | 2007-02-27 19:20:52 -0500
Backport: Fix a bug found by Udo van den Heuvel: avoid an assertion failure when a controller sets and clears EntryNodes before the next call to choose_random_entry().
Property changes on: tor/branches/tor-0_1_1-patches
___________________________________________________________________
svk:merge ticket from /tor/011 [r11972] on 8246c3cf-6607-4228-993b-4d95d33730f1
Modified: tor/branches/tor-0_1_1-patches/ChangeLog
===================================================================
--- tor/branches/tor-0_1_1-patches/ChangeLog 2007-02-28 00:23:17 UTC (rev 9670)
+++ tor/branches/tor-0_1_1-patches/ChangeLog 2007-02-28 00:23:22 UTC (rev 9671)
@@ -24,6 +24,8 @@
and hup, stop triggering an assert based on an empty onion_key.
- Downgrade the harmless "dropping unrecognized descriptor" message from
WARN to INFO.
+ - Fix an assert that could trigger if a controller quickly set then
+ cleared EntryNodes. (Bug found by Udo van den Heuvel.)
Changes in version 0.1.1.26 - 2006-12-14
Modified: tor/branches/tor-0_1_1-patches/src/or/circuitbuild.c
===================================================================
--- tor/branches/tor-0_1_1-patches/src/or/circuitbuild.c 2007-02-28 00:23:17 UTC (rev 9670)
+++ tor/branches/tor-0_1_1-patches/src/or/circuitbuild.c 2007-02-28 00:23:22 UTC (rev 9671)
@@ -2170,8 +2170,16 @@
smartlist_t *tmp = smartlist_create();
tor_assert(entry_guards);
- tor_assert(options->EntryNodes);
+ if (!options->EntryNodes) {
+ /* It's possible that a controller set EntryNodes, thus making
+ * should_add_entry_nodes set, then cleared it again, all before the
+ * call to choose_random_entry() that triggered us. If so, just return.
+ */
+ should_add_entry_nodes = 0;
+ return;
+ }
+
if (options->StrictEntryNodes) {
log_info(LD_CIRC,"Clearing old entry guards");
SMARTLIST_FOREACH(entry_guards, entry_guard_t *, e, tor_free(e));