diff options
author | Nick Mathewson <nickm@torproject.org> | 2019-06-11 08:41:55 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2019-06-11 08:41:55 -0400 |
commit | eb02c323eb2e4b5db5039502be9fd93c0fd19d84 (patch) | |
tree | 2f1afeb213b7bf12d2d1f8bb1271665f829e04b3 | |
parent | a7986755eee19b948c46f0b43ad3f6174071bd79 (diff) | |
parent | 29842f68e7a4f38d69509191fba9a7ffb28cdcd8 (diff) | |
download | tor-eb02c323eb2e4b5db5039502be9fd93c0fd19d84.tar.gz tor-eb02c323eb2e4b5db5039502be9fd93c0fd19d84.zip |
Merge branch 'maint-0.4.1'
-rw-r--r-- | changes/bug30781 | 4 | ||||
-rw-r--r-- | scripts/maint/practracker/exceptions.txt | 2 | ||||
-rw-r--r-- | src/feature/dirparse/routerparse.c | 3 |
3 files changed, 8 insertions, 1 deletions
diff --git a/changes/bug30781 b/changes/bug30781 new file mode 100644 index 0000000000..7c7adf470e --- /dev/null +++ b/changes/bug30781 @@ -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. diff --git a/scripts/maint/practracker/exceptions.txt b/scripts/maint/practracker/exceptions.txt index eb0625b8d3..db9bf34e25 100644 --- a/scripts/maint/practracker/exceptions.txt +++ b/scripts/maint/practracker/exceptions.txt @@ -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/parsecommon.c:tokenize_string() 103 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/hibernate/hibernate.c:accounting_parse_options() 109 problem function-size /src/feature/hs/hs_cell.c:hs_cell_build_establish_intro() 115 diff --git a/src/feature/dirparse/routerparse.c b/src/feature/dirparse/routerparse.c index ff7e15f1f2..f78c46f186 100644 --- a/src/feature/dirparse/routerparse.c +++ b/src/feature/dirparse/routerparse.c @@ -556,6 +556,9 @@ router_parse_entry_from_string(const char *s, const char *end, if ((tok = find_opt_by_keyword(tokens, A_PURPOSE))) { tor_assert(tok->n_args); router->purpose = router_purpose_from_string(tok->args[0]); + if (router->purpose == ROUTER_PURPOSE_UNKNOWN) { + goto err; + } } else { router->purpose = ROUTER_PURPOSE_GENERAL; } |