diff options
author | John Brooks <special@torproject.org> | 2016-05-11 12:13:22 -0400 |
---|---|---|
committer | John Brooks <special@torproject.org> | 2016-05-11 13:11:03 -0400 |
commit | bf3e32a45288b64e5535e02f40bd2bcb93c8a520 (patch) | |
tree | d3ae8afc737e828e69cbf6a583cadb0908a849f0 /src/or/dirserv.h | |
parent | 61c0bae4f20556cf155562582ea00a6a147252d6 (diff) | |
download | tor-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.h | 2 |
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); |