Fix 8833: crash bug from using NULL node->ri in dirserv.c

It appears that moria1 crashed because of one instance of this (the
one in router_counts_toward_thresholds).  The other instance I fixed
won't actually have broken anything, but I think it's more clear this
way.

Fixes bug 8833; bugfix on 0.2.4.12-alpha.
This commit is contained in:
Nick Mathewson 2013-05-05 18:52:53 -04:00
parent f8bb0064d6
commit 139d367f29
2 changed files with 5 additions and 2 deletions

3
changes/bug8833 Normal file
View File

@ -0,0 +1,3 @@
o Major bugfixes (directory authority):
- Fix a crash bug when building a consensus using an older consensus as
its basis. Fixes bug 8833. Bugfix on 0.2.4.12-alpha.

View File

@ -1889,7 +1889,7 @@ router_counts_toward_thresholds(const node_t *node, time_t now,
{
/* Have measured bw? */
int have_mbw =
dirserv_has_measured_bw(node->ri->cache_info.identity_digest);
dirserv_has_measured_bw(node->identity);
uint64_t min_bw_kb = ABSOLUTE_MIN_BW_VALUE_TO_CONSIDER_KB;
const or_options_t *options = get_options();
@ -1959,7 +1959,7 @@ dirserv_compute_performance_thresholds(routerlist_t *rl,
if (router_counts_toward_thresholds(node, now, omit_as_sybil,
require_mbw)) {
routerinfo_t *ri = node->ri;
const char *id = ri->cache_info.identity_digest;
const char *id = node->identity;
uint32_t bw_kb;
node->is_exit = (!router_exit_policy_rejects_all(ri) &&
exit_policy_is_general_exit(ri->exit_policy));