]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Asking for a conditional consensus at .../consensus/<fingerprints> would crash
authorPeter Palfrader <peter@palfrader.org>
Fri, 13 Jun 2008 18:58:58 +0000 (18:58 +0000)
committerPeter Palfrader <peter@palfrader.org>
Fri, 13 Jun 2008 18:58:58 +0000 (18:58 +0000)
a dirserver if it did not already have a consensus.

svn:r15227

ChangeLog
src/or/directory.c

index 73b496c16c472bd0ead3a80bdbf2ad1bd3be1a28..a446172dea433dfc7dc40830233998c3798ddd41 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,9 @@
 Changes in version 0.2.1.2-alpha - 2008-??-??
   o Minor features:
     - Allow OpenSSL to use dynamic locks if it wants.
+  o Bugfixes:
+    - Asking for a conditional consensus at .../consensus/<fingerprints>
+      would crash a dirserver if it did not already have a consensus.
 
 Changes in version 0.2.1.1-alpha - 2008-06-13
   o Major features:
index 1cf6f2b38d061bdba62bad7afa7db963d82908b3..419891fd7f7198567dd0b6e80e282f09eafad412 100644 (file)
@@ -2493,7 +2493,8 @@ directory_handle_command_get(dir_connection_t *conn, const char *headers,
       networkstatus_t *v = networkstatus_get_latest_consensus();
       time_t now = time(NULL);
       #define CONSENSUS_URL_PREFIX "/tor/status-vote/current/consensus/"
-      if (!strcmpstart(url, CONSENSUS_URL_PREFIX) &&
+      if (v &&
+          !strcmpstart(url, CONSENSUS_URL_PREFIX) &&
           !client_likes_consensus(v, url + strlen(CONSENSUS_URL_PREFIX))) {
         write_http_status_line(conn, 404, "Consensus not signed by sufficient "
                                           "number of requested authorities");
@@ -3430,3 +3431,4 @@ dir_split_resource_into_fingerprints(const char *resource,
   return 0;
 }
 
+/* vim:set et ts=2: */