diff options
-rw-r--r-- | changes/bug3207 | 4 | ||||
-rw-r--r-- | changes/bug3213 | 4 | ||||
-rw-r--r-- | src/or/circuitbuild.c | 2 | ||||
-rw-r--r-- | src/or/routerparse.c | 5 |
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; |