]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
prop250: Don't reject votes containing commits of unknown dirauths.
authorGeorge Kadianakis <desnacked@riseup.net>
Tue, 24 May 2016 10:56:39 +0000 (13:56 +0300)
committerDavid Goulet <dgoulet@torproject.org>
Fri, 1 Jul 2016 18:01:41 +0000 (14:01 -0400)
Instead just ignore those commits.

Squash this commit with 33b2ade.

src/or/shared_random.c
src/test/test_shared_random.c

index 8427b680a7fca4b17f0f015d61126609d90dbcb5..7da6daf62f2e27363550c5b58c246ce1a18cfaa8 100644 (file)
@@ -599,6 +599,16 @@ should_keep_commit(const sr_commit_t *commit, const char *voter_key,
     goto ignore;
   }
 
+  /* Let's make sure, for extra safety, that this fingerprint is known to
+   * us. Even though this comes from a vote, doesn't hurt to be
+   * extracareful. */
+  if (trusteddirserver_get_by_v3_auth_digest(commit->rsa_identity) == NULL) {
+    log_warn(LD_DIR, "SR: Fingerprint %s is not from a recognized "
+                     "authority. Discarding commit.",
+             escaped(commit->rsa_identity));
+    goto ignore;
+  }
+
   /* Check if the authority that voted for <b>commit</b> has already posted
    * a commit before. */
   saved_commit = sr_state_get_commit(commit->rsa_identity);
@@ -1108,15 +1118,6 @@ sr_parse_commit(const smartlist_t *args)
              escaped(rsa_identity_fpr));
     goto error;
   }
-  /* Let's make sure, for extra safety, that this fingerprint is known to
-   * us. Even though this comes from a vote, doesn't hurt to be
-   * extracareful. */
-  if (trusteddirserver_get_by_v3_auth_digest(digest) == NULL) {
-    log_warn(LD_DIR, "SR: Fingerprint %s is not from a recognized "
-                     "authority. Discarding commit.",
-             escaped(rsa_identity_fpr));
-    goto error;
-  }
 
   /* Allocate commit since we have a valid identity now. */
   commit = commit_new(digest);
index 18d45b5eba24111d32a07c8d945b62c4ee914884..dcd71e01aa77117072adc240ffbf4893b05d2b49 100644 (file)
@@ -277,9 +277,6 @@ test_sr_commit(void *arg)
 
   (void) arg;
 
-  MOCK(trusteddirserver_get_by_v3_auth_digest,
-       trusteddirserver_get_by_v3_auth_digest_m);
-
   {  /* Setup a minimal dirauth environment for this test  */
     or_options_t *options = get_options_mutable();
 
@@ -366,7 +363,6 @@ test_sr_commit(void *arg)
  done:
   smartlist_free(args);
   sr_commit_free(our_commit);
-  UNMOCK(trusteddirserver_get_by_v3_auth_digest);
 }
 
 /* Test the encoding and decoding function for commit and reveal values. */
@@ -1121,6 +1117,9 @@ test_keep_commit(void *arg)
 
   (void) arg;
 
+  MOCK(trusteddirserver_get_by_v3_auth_digest,
+       trusteddirserver_get_by_v3_auth_digest_m);
+
   {  /* Setup a minimal dirauth environment for this test  */
     crypto_pk_t *k = crypto_pk_new();
     /* Have a key that is not the one from our commit. */
@@ -1199,6 +1198,7 @@ test_keep_commit(void *arg)
  done:
   sr_commit_free(commit);
   sr_commit_free(dup_commit);
+  UNMOCK(trusteddirserver_get_by_v3_auth_digest);
 }
 
 static void