Commit 2ac37c8b authored by Nick Mathewson's avatar Nick Mathewson 🤹
Browse files

r16174@catbus: nickm | 2007-10-26 10:55:26 -0400

 Better log on vote from unknown authority.  Make get_by_v3_authority_id retrun only v3 authorities.


svn:r12203
parent 40970ccd
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ Changes in version 0.2.0.10-alpha - 2007-1?-??
  o Minor bugfixes:
    - Refuse to start if both ORPort and UseBridges are set. Bugfix
      on 0.2.0.x.
    - Better log message on vote from unknown authority.

  o Minor bugfixes (memory leaks):
    - Stop leaking memory every time we parse a v3 certificate. Bugfix
+3 −9
Original line number Diff line number Diff line
@@ -1519,18 +1519,12 @@ dirvote_add_vote(const char *vote_body, const char **msg_out, int *status_out)
  vi = get_voter(vote);
  tor_assert(vi->good_signature == 1);
  ds = trusteddirserver_get_by_v3_auth_digest(vi->identity_digest);
  if (!ds || !(ds->type & V3_AUTHORITY)) {
  if (!ds) {
    char *keys = list_v3_auth_ids();
    log_warn(LD_DIR, "Got a vote from an authority with authority key ID %s. "
             "This authority %s.  Known v3 key IDs are: %s",
             hex_str(vi->identity_digest, DIGEST_LEN),
             ds?"is not recognized":"is recognized, but is not listed as v3",
/* XXX020 isn't the above line backwards? -RD */
/* In fact, how can ds->v3_identity_digest be set if it's not a
 * V3_AUTHORITY? */
             keys);
             "This key ID is not recognized.  Known v3 key IDs are: %s",
             hex_str(vi->identity_digest, DIGEST_LEN), keys);
    tor_free(keys);

    *msg_out = "Vote not from a recognized v3 authority";
    goto err;
  }
+2 −1
Original line number Diff line number Diff line
@@ -779,7 +779,8 @@ trusteddirserver_get_by_v3_auth_digest(const char *digest)

  SMARTLIST_FOREACH(trusted_dir_servers, trusted_dir_server_t *, ds,
     {
       if (!memcmp(ds->v3_identity_digest, digest, DIGEST_LEN))
       if (!memcmp(ds->v3_identity_digest, digest, DIGEST_LEN) &&
           (ds->type & V3_AUTHORITY))
         return ds;
     });