Explorar el Código

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 hace 7 años
padre
commit
ae33deb91d
Se han modificado 1 ficheros con 4 adiciones y 1 borrados
  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) {