Prechádzať zdrojové kódy

Check for best consensus when no consensusdiff was found.

This patch ensures that we use the current consensus in the case where
no consensus diff was found or a consensus diff wasn't requested.

See: https://bugs.torproject.org/21667
Alexander Færøy 7 rokov pred
rodič
commit
ae33deb91d
1 zmenil súbory, kde vykonal 4 pridanie a 1 odobranie
  1. 4 1
      src/or/directory.c

+ 4 - 1
src/or/directory.c

@@ -3815,11 +3815,14 @@ handle_get_current_consensus(dir_connection_t *conn,
                                       &compression_used);
     SMARTLIST_FOREACH(diff_from_digests, uint8_t *, d, tor_free(d));
     smartlist_free(diff_from_digests);
-  } else {
+  }
+
+  if (! cached_consensus) {
     cached_consensus = find_best_consensus(flav,
                                            args->compression_supported,
                                            &compression_used);
   }
+
   time_t fresh_until, valid_until;
   int have_fresh_until = 0, have_valid_until = 0;
   if (cached_consensus) {