summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2010-12-07 11:35:32 -0500
committerNick Mathewson <nickm@torproject.org>2010-12-07 11:35:32 -0500
commit5efe6f04c68debe6ef9307d0ed98f67ed5ca5f46 (patch)
tree22515a819778450b658c6e1cd4dfd99451beee0d
parent8f31a9da43a7963cd2e08f107220f2e3fc3aed27 (diff)
downloadtor-5efe6f04c68debe6ef9307d0ed98f67ed5ca5f46.tar.gz
tor-5efe6f04c68debe6ef9307d0ed98f67ed5ca5f46.zip
Reject relay versions older than 0.2.0.26-rc
This was the first version to cache the correct directory information. Fixes bug 2156.
-rw-r--r--changes/bug2081_followup3
-rw-r--r--src/or/dirserv.c9
2 files changed, 8 insertions, 4 deletions
diff --git a/changes/bug2081_followup b/changes/bug2081_followup
index 9b81bc125c..a53227c38e 100644
--- a/changes/bug2081_followup
+++ b/changes/bug2081_followup
@@ -3,4 +3,7 @@
Tor between 0.2.1.3-alpha and 0.2.1.18 inclusive; they have
known bugs that keep RELAY_EARLY cells from working on rendezvous
circuits. Followup to fix for bug 2081.
+ - Directory authorities now reject relays running any version of Tor
+ older than 0.2.0.26-rc. That is the earliest version that fetches
+ current directory information correctly. Fix for bug 2156.
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 4cd6123f4c..fd4b53a482 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -386,15 +386,16 @@ dirserv_get_status_impl(const char *id_digest, const char *nickname,
strmap_size(fingerprint_list->fp_by_name),
digestmap_size(fingerprint_list->status_by_digest));
- /* Tor 0.1.2.x is pretty old, but there are a lot of them running still,
- * and there aren't any critical relay-side vulnerabilities. Once more
- * of them die off, we should raise this minimum to 0.2.0.x. */
- if (platform && !tor_version_as_new_as(platform,"0.1.2.14")) {
+ /* Tor 0.2.0.26-rc is the oldest version that currently caches the right
+ * directory information. Once more of them die off, we should raise this
+ * minimum. */
+ if (platform && !tor_version_as_new_as(platform,"0.2.0.26-rc")) {
if (msg)
*msg = "Tor version is far too old to work.";
return FP_REJECT;
} else if (platform && tor_version_as_new_as(platform,"0.2.1.3-alpha")
&& !tor_version_as_new_as(platform, "0.2.1.19")) {
+ /* These versions mishandled RELAY_EARLY cells on rend circuits. */
if (msg)
*msg = "Tor version is too buggy to work.";
return FP_REJECT;