diff options
author | teor <teor@torproject.org> | 2019-08-09 14:05:26 +1000 |
---|---|---|
committer | teor <teor@torproject.org> | 2019-08-09 14:05:26 +1000 |
commit | 654769bcec3e98bea5e3ac48b2aabffcbe55375e (patch) | |
tree | 66f00df458b0b5f5d4fbd7dd3c9bb3ef6b6dafc2 | |
parent | 1ba2bd3599e94bb2fa533cde9e1ef296b4124ce4 (diff) | |
parent | c8c2e2b8fcc4d99adce600da8210a5e9ae653daf (diff) | |
download | tor-654769bcec3e98bea5e3ac48b2aabffcbe55375e.tar.gz tor-654769bcec3e98bea5e3ac48b2aabffcbe55375e.zip |
Merge remote-tracking branch 'tor-github/pr/1080' into maint-0.3.5
-rw-r--r-- | changes/bug30781 | 4 | ||||
-rw-r--r-- | src/feature/dirparse/routerparse.c | 3 |
2 files changed, 7 insertions, 0 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/src/feature/dirparse/routerparse.c b/src/feature/dirparse/routerparse.c index a819302631..e44fbf77f9 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; } |