[tor-commits] [tor/master] dirparse: Stop crashing when parsing unknown descriptor purpose annotations

nickm at torproject.org nickm at torproject.org
Tue Jun 11 12:42:04 UTC 2019


commit ba83c1e5cf0e4ba0d63cb3728da059a9b241a161
Author: teor <teor at torproject.org>
Date:   Thu Jun 6 09:12:14 2019 +1000

    dirparse: Stop crashing when parsing unknown descriptor purpose annotations
    
    We think this bug can only be triggered by modifying a local file.
    
    Fixes bug 30781; bugfix on 0.2.0.8-alpha.
---
 changes/bug30781     | 4 ++++
 src/or/routerparse.c | 3 +++
 2 files changed, 7 insertions(+)

diff --git a/changes/bug30781 b/changes/bug30781
new file mode 100644
index 000000000..7c7adf470
--- /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/or/routerparse.c b/src/or/routerparse.c
index 37d2d975f..f046cc39b 100644
--- a/src/or/routerparse.c
+++ b/src/or/routerparse.c
@@ -1921,6 +1921,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;
   }





More information about the tor-commits mailing list