[tor/master] Fix check_expired_networkstatus_callback() if condition

commit 5b03c7ba6d899e19e8f3e0a58bd5df8bb7bbf1d0 Author: David Goulet <dgoulet@torproject.org> Date: Wed Aug 2 13:20:59 2017 -0400 Fix check_expired_networkstatus_callback() if condition The condition was always true meaning that we would reconsider updating our directory information every 2 minutes. If valid_until is 6am today, then now - 24h == 1pm yesterday which means that "valid_until < (now - 24h)" is false. But at 6:01am tomorrow, "valid_until < (now - 24h)" becomes true which is that point that we shouldn't trust the consensus anymore. Fixes #23091 Signed-off-by: David Goulet <dgoulet@torproject.org> --- changes/bug23091 | 6 ++++++ src/or/main.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/changes/bug23091 b/changes/bug23091 new file mode 100644 index 000000000..7dfb7e418 --- /dev/null +++ b/changes/bug23091 @@ -0,0 +1,6 @@ + o Minor bugfixes (consensus expiry): + - Tor would reconsider updating its directory information every 2 minutes + instead of only doing it for a consensus that is more than 24 hours old + (badly expired). This specific check is done in the tor main loop + callback that validates if we have an expired consensus. Fixes bug + 23091; bugfix on tor-0.2.0.19-alpha. diff --git a/src/or/main.c b/src/or/main.c index dc2318496..670d67cda 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -1713,7 +1713,7 @@ check_expired_networkstatus_callback(time_t now, const or_options_t *options) * networkstatus_get_reasonably_live_consensus(), but that value is way * way too high. Arma: is the bridge issue there resolved yet? -NM */ #define NS_EXPIRY_SLOP (24*60*60) - if (ns && ns->valid_until < now+NS_EXPIRY_SLOP && + if (ns && ns->valid_until < (now - NS_EXPIRY_SLOP) && router_have_minimum_dir_info()) { router_dir_info_changed(); }
participants (1)
-
nickm@torproject.org