summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/bug32074
-rw-r--r--changes/bug32134
-rw-r--r--src/or/circuitbuild.c2
-rw-r--r--src/or/routerparse.c5
4 files changed, 14 insertions, 1 deletions
diff --git a/changes/bug3207 b/changes/bug3207
new file mode 100644
index 0000000000..65a7dac1ab
--- /dev/null
+++ b/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
+
diff --git a/changes/bug3213 b/changes/bug3213
new file mode 100644
index 0000000000..ab7de2d629
--- /dev/null
+++ b/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.
+
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index 3337d64987..c91e2f32f1 100644
--- a/src/or/circuitbuild.c
+++ b/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);
diff --git a/src/or/routerparse.c b/src/or/routerparse.c
index dcfb6f86b2..295b74dc2d 100644
--- a/src/or/routerparse.c
+++ b/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;