X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Futils_latency.c;h=c6a1ff6669185746d9ea1da8e0e56553946f10d9;hb=08a2128ac248150b50f9c54c9c71f573e54df3c3;hp=cfe90e27ac97f8869d31cf68c33f32d37f3f55fb;hpb=b6502396fff51f422ddae66c17e89b7fddeed957;p=collectd.git diff --git a/src/utils_latency.c b/src/utils_latency.c index cfe90e27..c6a1ff66 100644 --- a/src/utils_latency.c +++ b/src/utils_latency.c @@ -1,6 +1,6 @@ /** * collectd - src/utils_latency.c - * Copyright (C) 2013 Florian Forster + * Copyright (C) 2013 Florian Forster * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -102,7 +102,7 @@ void change_bin_width (latency_counter_t *lc, size_t val) /* {{{ */ DEBUG("utils_latency: change_bin_width: fixed all bins"); } - DEBUG("utils_latency: change_bin_width: val-[%ld], oldBinWidth-[%d], " + DEBUG("utils_latency: change_bin_width: val-[%zu], oldBinWidth-[%d], " "newBinWidth-[%d], required_bin_width-[%f], " "required_bin_width_logbase2-[%f]", val, old_bin_width, new_bin_width, required_bin_width, @@ -117,6 +117,7 @@ latency_counter_t *latency_counter_create () /* {{{ */ lc = malloc (sizeof (*lc)); if (lc == NULL) return (NULL); + memset (lc, 0, sizeof (*lc)); latency_counter_reset (lc); lc->bin_width = HISTOGRAM_DEFAULT_BIN_WIDTH; @@ -209,7 +210,7 @@ cdtime_t latency_counter_get_average (latency_counter_t *lc) /* {{{ */ { double average; - if (lc == NULL) + if ((lc == NULL) || (lc->num == 0)) return (0); average = CDTIME_T_TO_DOUBLE (lc->sum) / ((double) lc->num); @@ -227,7 +228,7 @@ cdtime_t latency_counter_get_percentile (latency_counter_t *lc, int sum; size_t i; - if ((lc == NULL) || !((percent > 0.0) && (percent < 100.0))) + if ((lc == NULL) || (lc->num == 0) || !((percent > 0.0) && (percent < 100.0))) return (0); /* Find index i so that at least "percent" events are within i+1 ms. */