瀏覽代碼

Fix an assert failure when the directory authority sets
AuthDirRejectUnlisted and then receives a descriptor from an
unlisted router (reported by seeess).


svn:r9023

Roger Dingledine 17 年之前
父節點
當前提交
44c55dad23
共有 2 個文件被更改,包括 11 次插入3 次删除
  1. 5 2
      ChangeLog
  2. 6 1
      src/or/dirserv.c

+ 5 - 2
ChangeLog

@@ -1,11 +1,14 @@
 Changes in version 0.1.2.5-xxxx - 200?-??-??
   o Minor bugfixes;
     - Fix a bug when a PF socket is first used.  (Patch from Fabian
-      Keil)
+      Keil.)
+    - Fix an assert failure when the directory authority sets
+      AuthDirRejectUnlisted and then receives a descriptor from an
+      unlisted router (reported by seeess).
 
   o Controller bugfixes:
     - Report the circuit number correctly in STREAM CLOSED events. (Bug
-      reported by Mike Perry)
+      reported by Mike Perry.)
 
 
 Changes in version 0.1.2.4-alpha - 2006-12-03

+ 6 - 1
src/or/dirserv.c

@@ -270,6 +270,8 @@ dirserv_router_get_status(const routerinfo_t *router, const char **msg)
 
   if (crypto_pk_get_digest(router->identity_pkey, d)) {
     log_warn(LD_BUG,"Error computing fingerprint");
+    if (msg)
+      *msg = "Bug: Error computing fingerprint";
     return FP_REJECT;
   }
 
@@ -384,8 +386,11 @@ dirserv_get_status_impl(const char *id_digest, const char *nickname,
                  nickname, address);
       result |= FP_INVALID;
     }
-    if (reject_unlisted)
+    if (reject_unlisted) {
+      if (msg)
+        *msg = "Authdir rejects unknown routers.";
       return FP_REJECT;
+    }
     /* 0.1.0.2-rc was the first version that did enough self-testing that
      * we're willing to take its word about whether it's running. */
     if (platform && !tor_version_as_new_as(platform,"0.1.0.2-rc"))