[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] r13018: Bugfix for bug 569: do not try to download nonexistant certi (in tor/trunk: . src/or)



Author: nickm
Date: 2008-01-01 23:57:48 -0500 (Tue, 01 Jan 2008)
New Revision: 13018

Modified:
   tor/trunk/
   tor/trunk/ChangeLog
   tor/trunk/src/or/routerlist.c
Log:
 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.



Property changes on: tor/trunk
___________________________________________________________________
 svk:merge ticket from /tor/trunk [r15782] on d9e39d38-0f13-419c-a857-e10a0ce2aa0c

Modified: tor/trunk/ChangeLog
===================================================================
--- tor/trunk/ChangeLog	2008-01-02 04:43:44 UTC (rev 13017)
+++ tor/trunk/ChangeLog	2008-01-02 04:57:48 UTC (rev 13018)
@@ -10,6 +10,11 @@
     - 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)
 

Modified: tor/trunk/src/or/routerlist.c
===================================================================
--- tor/trunk/src/or/routerlist.c	2008-01-02 04:43:44 UTC (rev 13017)
+++ tor/trunk/src/or/routerlist.c	2008-01-02 04:57:48 UTC (rev 13018)
@@ -328,8 +328,13 @@
       {
         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);