Browse Source

Merge remote-tracking branch 'origin/maint-0.2.2'

Nick Mathewson 13 years ago
parent
commit
e0e8424f1e
4 changed files with 14 additions and 1 deletions
  1. 4 0
      changes/bug3207
  2. 4 0
      changes/bug3213
  3. 1 1
      src/or/circuitbuild.c
  4. 5 0
      src/or/routerparse.c

+ 4 - 0
changes/bug3207

@@ -0,0 +1,4 @@
+  o Minor bugfixes:
+    - Require that onion keys have exponent 65537 in microdescriptors too.
+      Fixes part of bug 3207; bugfix on 0.2.2.25-alpha
+

+ 4 - 0
changes/bug3213

@@ -0,0 +1,4 @@
+  o Major bugfixes:
+    - Fix a crash bug when changing bridges in a running Tor process.
+      Fixes bug 3213; bugfix on 0.2.2.26-beta.
+

+ 1 - 1
src/or/circuitbuild.c

@@ -4556,7 +4556,7 @@ get_configured_bridge_by_addr_port_digest(const tor_addr_t *addr,
           !tor_addr_compare(&bridge->addr, addr, CMP_EXACT) &&
           bridge->port == port)
         return bridge;
-      if (tor_memeq(bridge->identity, digest, DIGEST_LEN))
+      if (digest && tor_memeq(bridge->identity, digest, DIGEST_LEN))
         return bridge;
     }
   SMARTLIST_FOREACH_END(bridge);

+ 5 - 0
src/or/routerparse.c

@@ -4345,6 +4345,11 @@ microdescs_parse_from_string(const char *s, const char *eos,
     }
 
     tok = find_by_keyword(tokens, K_ONION_KEY);
+    if (!crypto_pk_public_exponent_ok(tok->key)) {
+      log_warn(LD_DIR,
+               "Relay's onion key had invalid exponent.");
+      goto next;
+    }
     md->onion_pkey = tok->key;
     tok->key = NULL;