mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
Don't believe unauthenticated info in a consensus.
Don't allow anything but directory-signature tokens in a consensus after the first directory-signature token. Fixes bug in bandwidth-weights branch. Found by "outofwords."
This commit is contained in:
@@ -3075,6 +3075,18 @@ networkstatus_parse_vote_from_string(const char *s, const char **eos_out,
|
||||
goto err;
|
||||
}
|
||||
|
||||
{
|
||||
int found_sig = 0;
|
||||
SMARTLIST_FOREACH_BEGIN(footer_tokens, directory_token_t *, _tok) {
|
||||
if (tok->tp == K_DIRECTORY_SIGNATURE)
|
||||
found_sig = 1;
|
||||
else if (found_sig) {
|
||||
log_warn(LD_DIR, "Extraneous token after first directory-signature");
|
||||
goto err;
|
||||
}
|
||||
} SMARTLIST_FOREACH_END(_tok);
|
||||
}
|
||||
|
||||
tok = find_opt_by_keyword(footer_tokens, K_BW_WEIGHTS);
|
||||
if (tok) {
|
||||
ns->weight_params = smartlist_create();
|
||||
|
||||
Reference in New Issue
Block a user