Merge branch 'maint-0.4.1'

This commit is contained in:
Nick Mathewson 2019-06-11 08:41:55 -04:00
commit eb02c323eb
3 changed files with 8 additions and 1 deletions

4
changes/bug30781 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes (directory authorities):
- Stop crashing after parsing an unknown descriptor purpose annotation.
We think this bug can only be triggered by modifying a local file.
Fixes bug 30781; bugfix on 0.2.0.8-alpha.

View File

@ -189,7 +189,7 @@ problem function-size /src/feature/dirparse/ns_parse.c:networkstatus_verify_bw_w
problem function-size /src/feature/dirparse/ns_parse.c:networkstatus_parse_vote_from_string() 638 problem function-size /src/feature/dirparse/ns_parse.c:networkstatus_parse_vote_from_string() 638
problem function-size /src/feature/dirparse/parsecommon.c:tokenize_string() 103 problem function-size /src/feature/dirparse/parsecommon.c:tokenize_string() 103
problem function-size /src/feature/dirparse/parsecommon.c:get_next_token() 159 problem function-size /src/feature/dirparse/parsecommon.c:get_next_token() 159
problem function-size /src/feature/dirparse/routerparse.c:router_parse_entry_from_string() 554 problem function-size /src/feature/dirparse/routerparse.c:router_parse_entry_from_string() 557
problem function-size /src/feature/dirparse/routerparse.c:extrainfo_parse_entry_from_string() 210 problem function-size /src/feature/dirparse/routerparse.c:extrainfo_parse_entry_from_string() 210
problem function-size /src/feature/hibernate/hibernate.c:accounting_parse_options() 109 problem function-size /src/feature/hibernate/hibernate.c:accounting_parse_options() 109
problem function-size /src/feature/hs/hs_cell.c:hs_cell_build_establish_intro() 115 problem function-size /src/feature/hs/hs_cell.c:hs_cell_build_establish_intro() 115

View File

@ -556,6 +556,9 @@ router_parse_entry_from_string(const char *s, const char *end,
if ((tok = find_opt_by_keyword(tokens, A_PURPOSE))) { if ((tok = find_opt_by_keyword(tokens, A_PURPOSE))) {
tor_assert(tok->n_args); tor_assert(tok->n_args);
router->purpose = router_purpose_from_string(tok->args[0]); router->purpose = router_purpose_from_string(tok->args[0]);
if (router->purpose == ROUTER_PURPOSE_UNKNOWN) {
goto err;
}
} else { } else {
router->purpose = ROUTER_PURPOSE_GENERAL; router->purpose = ROUTER_PURPOSE_GENERAL;
} }