summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2017-02-01 09:01:28 -0500
committerNick Mathewson <nickm@torproject.org>2017-02-01 09:01:28 -0500
commitf8885b76ef353c4bccc90119448df5301b3ba8cb (patch)
tree92b7636cb5d26cc5245257722f1038f8597785cf
parenta5aec6ac3726d0202be7caa64acf1f02d2eac653 (diff)
parent35d827094237e92436ff28fffeb282ac83220839 (diff)
downloadtor-f8885b76ef353c4bccc90119448df5301b3ba8cb.tar.gz
tor-f8885b76ef353c4bccc90119448df5301b3ba8cb.zip
Merge remote-tracking branch 'public/bug21128'
-rw-r--r--changes/bug211285
-rw-r--r--src/or/entrynodes.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/changes/bug21128 b/changes/bug21128
new file mode 100644
index 0000000000..972d2a2818
--- /dev/null
+++ b/changes/bug21128
@@ -0,0 +1,5 @@
+ o Minor bugfixes (client, entry guards):
+ - Fix a bug warning (with backtrace) when we fail a channel
+ that circuits to fallback directories on it. Fixes bug 21128;
+ bugfix on 0.3.0.1-alpha.
+
diff --git a/src/or/entrynodes.c b/src/or/entrynodes.c
index c5fb92e35a..f9b3b60a6f 100644
--- a/src/or/entrynodes.c
+++ b/src/or/entrynodes.c
@@ -2172,7 +2172,11 @@ entry_guard_chan_failed(channel_t *chan)
continue;
origin_circuit_t *origin_circ = TO_ORIGIN_CIRCUIT(circ);
- entry_guard_failed(&origin_circ->guard_state);
+ if (origin_circ->guard_state) {
+ /* We might have no guard state if we didn't use a guard on this
+ * circuit (eg it's for a fallback directory). */
+ entry_guard_failed(&origin_circ->guard_state);
+ }
} SMARTLIST_FOREACH_END(circ);
smartlist_free(pending);
}