aboutsummaryrefslogtreecommitdiff
path: root/src/or/geoip.c
diff options
context:
space:
mode:
authorSebastian Hahn <sebastian@torproject.org>2011-10-21 17:01:38 +0200
committerNick Mathewson <nickm@torproject.org>2011-10-21 11:21:42 -0400
commit42b96a041de39399a60a622329c5d5ecf593ab99 (patch)
treed0e723f105d9831707f2f72d26229e9b8343d1f7 /src/or/geoip.c
parent03c06b629fc604030393567ec05c16f813d43529 (diff)
downloadtor-42b96a041de39399a60a622329c5d5ecf593ab99.tar
tor-42b96a041de39399a60a622329c5d5ecf593ab99.tar.gz
Check for jumping clock in *format_*stats functions
None of these were real bugs (yet), because the callers made sure everything was fine. Make it more explicit. Suggested by Nick
Diffstat (limited to 'src/or/geoip.c')
-rw-r--r--src/or/geoip.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/or/geoip.c b/src/or/geoip.c
index 67dea965f..73194ae9c 100644
--- a/src/or/geoip.c
+++ b/src/or/geoip.c
@@ -976,7 +976,8 @@ geoip_dirreq_stats_term(void)
}
/** Return a newly allocated string containing the dirreq statistics
- * until <b>now</b>, or NULL if we're not collecting dirreq stats. */
+ * until <b>now</b>, or NULL if we're not collecting dirreq stats. Caller
+ * must ensure start_of_dirreq_stats_interval is in the past. */
char *
geoip_format_dirreq_stats(time_t now)
{
@@ -992,6 +993,8 @@ geoip_format_dirreq_stats(time_t now)
if (!start_of_dirreq_stats_interval)
return NULL; /* Not initialized. */
+ tor_assert(now >= start_of_dirreq_stats_interval);
+
format_iso_time(t, now);
v2_ips_string = geoip_get_client_history(GEOIP_CLIENT_NETWORKSTATUS_V2);
v3_ips_string = geoip_get_client_history(GEOIP_CLIENT_NETWORKSTATUS);
@@ -1351,7 +1354,8 @@ geoip_entry_stats_term(void)
}
/** Return a newly allocated string containing the entry statistics
- * until <b>now</b>, or NULL if we're not collecting entry stats. */
+ * until <b>now</b>, or NULL if we're not collecting entry stats. Caller
+ * must ensure start_of_entry_stats_interval lies in the past. */
char *
geoip_format_entry_stats(time_t now)
{
@@ -1362,6 +1366,8 @@ geoip_format_entry_stats(time_t now)
if (!start_of_entry_stats_interval)
return NULL; /* Not initialized. */
+ tor_assert(now >= start_of_entry_stats_interval);
+
data = geoip_get_client_history(GEOIP_CLIENT_CONNECT);
format_iso_time(t, now);
tor_asprintf(&result, "entry-stats-end %s (%u s)\nentry-ips %s\n",