summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2008-01-02 04:57:48 +0000
committerNick Mathewson <nickm@torproject.org>2008-01-02 04:57:48 +0000
commitfeb1c60e9d4cf6f3f17feabd7278ace97c5fd3ed (patch)
tree697c76da0d51b7159d4fdf338f1f7bb95da7924a
parent11fff225fa4a644a40e3adfe2fea7b92b8184dbc (diff)
downloadtor-feb1c60e9d4cf6f3f17feabd7278ace97c5fd3ed.tar.gz
tor-feb1c60e9d4cf6f3f17feabd7278ace97c5fd3ed.zip
r15782@tombo: nickm | 2008-01-01 23:57:43 -0500
Bugfix for bug 569: do not try to download nonexistant certificates with signing key 000000000000000. svn:r13018
-rw-r--r--ChangeLog5
-rw-r--r--src/or/routerlist.c7
2 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index a11b2903d4..f4cb19e112 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,6 +10,11 @@ Changes in version 0.2.0.16-alpha - 2008-01-??
- Reference-count and share copies of address policy entries; only
5% of them were actually distinct.
+ o Minor bugfixes:
+ - When an authority has not signed a consensus, do not try to
+ download a nonexistant "certificate with key 00000000". Bugfix
+ on 0.2.0.x. Fixes bug 569.
+
o Minor features (controller):
- Get NS events working again. (Patch from tup)
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index 3ead01fd8a..7794d30fe5 100644
--- a/src/or/routerlist.c
+++ b/src/or/routerlist.c
@@ -328,8 +328,13 @@ authority_certs_fetch_missing(networkstatus_vote_t *status, time_t now)
{
trusted_dir_server_t *ds
= trusteddirserver_get_by_v3_auth_digest(voter->identity_digest);
- if (!ds)
+ if (!ds) /* XXXX020 This is wrong!! If we're a cache, we should
+ * download unrecognized signing keys so we can serve
+ * them. */
continue;
+ if (tor_digest_is_zero(voter->signing_key_digest))
+ continue; /* This authority never signed this consensus, so don't
+ * go looking for a cert with key digest 0000000000. */
if (authority_cert_get_by_digests(voter->identity_digest,
voter->signing_key_digest)) {
download_status_reset(&ds->cert_dl_status);