summaryrefslogtreecommitdiff
path: root/src/or/dirserv.h
diff options
context:
space:
mode:
authorJohn Brooks <special@torproject.org>2016-05-11 12:13:22 -0400
committerJohn Brooks <special@torproject.org>2016-05-11 13:11:03 -0400
commitbf3e32a45288b64e5535e02f40bd2bcb93c8a520 (patch)
treed3ae8afc737e828e69cbf6a583cadb0908a849f0 /src/or/dirserv.h
parent61c0bae4f20556cf155562582ea00a6a147252d6 (diff)
downloadtor-bf3e32a45288b64e5535e02f40bd2bcb93c8a520.tar.gz
tor-bf3e32a45288b64e5535e02f40bd2bcb93c8a520.zip
Fix out-of-bounds write during voting with duplicate ed25519 keys
In dirserv_compute_performance_thresholds, we allocate arrays based on the length of 'routers', a list of routerinfo_t, but loop over the nodelist. The 'routers' list may be shorter when relays were filtered by routers_make_ed_keys_unique, leading to an out-of-bounds write on directory authorities. This bug was originally introduced in 26e89742, but it doesn't look possible to trigger until routers_make_ed_keys_unique was introduced in 13a31e72. Fixes bug 19032; bugfix on tor 0.2.8.2-alpha.
Diffstat (limited to 'src/or/dirserv.h')
-rw-r--r--src/or/dirserv.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/or/dirserv.h b/src/or/dirserv.h
index b16a67c081..4bb307217d 100644
--- a/src/or/dirserv.h
+++ b/src/or/dirserv.h
@@ -50,7 +50,7 @@ int list_server_status_v1(smartlist_t *routers, char **router_status_out,
int dirserv_dump_directory_to_string(char **dir_out,
crypto_pk_t *private_key);
char *dirserv_get_flag_thresholds_line(void);
-void dirserv_compute_bridge_flag_thresholds(const smartlist_t *routers);
+void dirserv_compute_bridge_flag_thresholds(void);
int directory_fetches_from_authorities(const or_options_t *options);
int directory_fetches_dir_info_early(const or_options_t *options);