network-status-version must come first in a vote/consensus

Spec conformance issue: The code didn't force the network-status-version
token to be the first token in a v3 vote or consensus.

Problem discovered by Parakeep.
This commit is contained in:
Sebastian Hahn 2010-02-22 07:58:10 +01:00
parent ee8b0893af
commit 5aa9610dd6
2 changed files with 5 additions and 2 deletions

View File

@ -42,6 +42,9 @@ Changes in version 0.2.2.9-alpha - 2010-02-22
control-spec.txt said they were.
- Refactor resolve_my_address() to not use gethostbyname() anymore.
Fixes bug 1244; bugfix on 0.0.2pre25. Reported by Mike Mestnik.
- Fix a spec conformance issue: the network-status-version token
must be the first token in a v3 consensus or vote. Discovered by
parakeep. Bugfix on 0.2.0.3-alpha.
o Code simplifications and refactoring:
- Generate our manpage and HTML documentation using Asciidoc. This

View File

@ -430,7 +430,7 @@ static token_rule_t client_keys_token_table[] = {
/** List of tokens allowed in V3 networkstatus votes. */
static token_rule_t networkstatus_token_table[] = {
T1("network-status-version", K_NETWORK_STATUS_VERSION,
T1_START("network-status-version", K_NETWORK_STATUS_VERSION,
GE(1), NO_OBJ ),
T1("vote-status", K_VOTE_STATUS, GE(1), NO_OBJ ),
T1("published", K_PUBLISHED, CONCAT_ARGS, NO_OBJ ),
@ -458,7 +458,7 @@ static token_rule_t networkstatus_token_table[] = {
/** List of tokens allowed in V3 networkstatus consensuses. */
static token_rule_t networkstatus_consensus_token_table[] = {
T1("network-status-version", K_NETWORK_STATUS_VERSION,
T1_START("network-status-version", K_NETWORK_STATUS_VERSION,
GE(1), NO_OBJ ),
T1("vote-status", K_VOTE_STATUS, GE(1), NO_OBJ ),
T1("valid-after", K_VALID_AFTER, CONCAT_ARGS, NO_OBJ ),