format_graphite: Error if call to uc_get_rate fails to return a value.
authorIain Buclaw <iain.buclaw@sociomantic.com>
Fri, 19 May 2017 10:55:37 +0000 (12:55 +0200)
committerFlorian Forster <octo@collectd.org>
Fri, 19 May 2017 13:13:31 +0000 (15:13 +0200)
This prevents a wrong value being sent to graphite for DERIVE types.

See #2209

Signed-off-by: Florian Forster <octo@collectd.org>
src/utils_format_graphite.c

index 2fe9395..40bfff5 100644 (file)
@@ -165,8 +165,13 @@ int format_graphite(char *buffer, size_t buffer_size, data_set_t const *ds,
   int buffer_pos = 0;
 
   gauge_t *rates = NULL;
-  if (flags & GRAPHITE_STORE_RATES)
+  if (flags & GRAPHITE_STORE_RATES) {
     rates = uc_get_rate(ds, vl);
+    if (rates == NULL) {
+      ERROR("format_graphite: error with uc_get_rate");
+      return -1;
+    }
+  }
 
   for (size_t i = 0; i < ds->ds_num; i++) {
     char const *ds_name = NULL;