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
This commit is contained in:
Nick Mathewson 2007-10-26 14:57:26 +00:00
parent 40970ccdaa
commit 2ac37c8b01
3 changed files with 6 additions and 10 deletions

View File

@ -6,6 +6,7 @@ Changes in version 0.2.0.10-alpha - 2007-1?-??
o Minor bugfixes: o Minor bugfixes:
- Refuse to start if both ORPort and UseBridges are set. Bugfix - Refuse to start if both ORPort and UseBridges are set. Bugfix
on 0.2.0.x. on 0.2.0.x.
- Better log message on vote from unknown authority.
o Minor bugfixes (memory leaks): o Minor bugfixes (memory leaks):
- Stop leaking memory every time we parse a v3 certificate. Bugfix - Stop leaking memory every time we parse a v3 certificate. Bugfix

View File

@ -1519,18 +1519,12 @@ dirvote_add_vote(const char *vote_body, const char **msg_out, int *status_out)
vi = get_voter(vote); vi = get_voter(vote);
tor_assert(vi->good_signature == 1); tor_assert(vi->good_signature == 1);
ds = trusteddirserver_get_by_v3_auth_digest(vi->identity_digest); ds = trusteddirserver_get_by_v3_auth_digest(vi->identity_digest);
if (!ds || !(ds->type & V3_AUTHORITY)) { if (!ds) {
char *keys = list_v3_auth_ids(); char *keys = list_v3_auth_ids();
log_warn(LD_DIR, "Got a vote from an authority with authority key ID %s. " log_warn(LD_DIR, "Got a vote from an authority with authority key ID %s. "
"This authority %s. Known v3 key IDs are: %s", "This key ID is not recognized. Known v3 key IDs are: %s",
hex_str(vi->identity_digest, DIGEST_LEN), hex_str(vi->identity_digest, DIGEST_LEN), keys);
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);
tor_free(keys); tor_free(keys);
*msg_out = "Vote not from a recognized v3 authority"; *msg_out = "Vote not from a recognized v3 authority";
goto err; goto err;
} }

View File

@ -779,7 +779,8 @@ trusteddirserver_get_by_v3_auth_digest(const char *digest)
SMARTLIST_FOREACH(trusted_dir_servers, trusted_dir_server_t *, ds, 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; return ds;
}); });