Merge branch 'collectd-5.4' into collectd-5.5
[collectd.git] / src / utils_latency.c
index cfe90e2..c6a1ff6 100644 (file)
@@ -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. */