From: Karsten Loesing Date: Thu, 3 Dec 2009 09:51:51 +0000 (+0100) Subject: Minor fix to buffer stats. X-Git-Tag: tor-0.2.2.7-alpha~46^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=16fbb2f745bf0a910e7f7d6ae101dec6cbc195fe;p=thirdparty%2Ftor.git Minor fix to buffer stats. Do not segfault when writing buffer stats when we haven't observed a single circuit to report about. This is a minor bug that would only show up in testing environments with no traffic and with reduced stats intervals. --- diff --git a/src/or/rephist.c b/src/or/rephist.c index 1ff9cde69f..003e082d58 100644 --- a/src/or/rephist.c +++ b/src/or/rephist.c @@ -2701,9 +2701,16 @@ rep_hist_buffer_stats_write(time_t now) memset(circs_in_share, 0, SHARES * sizeof(int)); memset(queued_cells, 0, SHARES * sizeof(double)); memset(time_in_queue, 0, SHARES * sizeof(double)); + if (!circuits_for_buffer_stats) + circuits_for_buffer_stats = smartlist_create(); smartlist_sort(circuits_for_buffer_stats, _buffer_stats_compare_entries); number_of_circuits = smartlist_len(circuits_for_buffer_stats); + if (number_of_circuits < 1) { + log_info(LD_HIST, "Attempt to write cell statistics to disk failed. " + "We haven't seen a single circuit to report about."); + goto done; + } i = 0; SMARTLIST_FOREACH_BEGIN(circuits_for_buffer_stats, circ_buffer_stats_t *, stat)