Explorar o código

Merge branch 'bug30781_035' into bug30781_040

teor %!s(int64=5) %!d(string=hai) anos
pai
achega
fb3f461406
Modificáronse 2 ficheiros con 7 adicións e 0 borrados
  1. 4 0
      changes/bug30781
  2. 3 0
      src/feature/dirparse/routerparse.c

+ 4 - 0
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.

+ 3 - 0
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;
   }