rrdtool plugin: Check return value of c_avl_get().
authorFlorian Forster <octo@collectd.org>
Fri, 1 Dec 2017 19:45:04 +0000 (20:45 +0100)
committerFlorian Forster <octo@collectd.org>
Fri, 1 Dec 2017 19:45:04 +0000 (20:45 +0100)
CID: 37940

src/rrdtool.c

index 82f570f..4fcbad4 100644 (file)
@@ -627,9 +627,8 @@ static int rrd_cache_insert(const char *filename, const char *value,
     return (-1);
   }
 
-  c_avl_get(cache, filename, (void *)&rc);
-
-  if (rc == NULL) {
+  int status = c_avl_get(cache, filename, (void *)&rc);
+  if ((status != 0) || (rc == NULL)) {
     rc = malloc(sizeof(*rc));
     if (rc == NULL) {
       pthread_mutex_unlock(&cache_lock);
@@ -1054,8 +1053,8 @@ static int rrd_init(void) {
     random_timeout = 0;
     cache_flush_timeout = 0;
   } else if (cache_flush_timeout < cache_timeout) {
-    INFO("rrdtool plugin: \"CacheFlush %.3f\" is less than \"CacheTimeout %.3f\". "
-         "Ajusting \"CacheFlush\" to %.3f seconds.",
+    INFO("rrdtool plugin: \"CacheFlush %.3f\" is less than \"CacheTimeout "
+         "%.3f\". Adjusting \"CacheFlush\" to %.3f seconds.",
          CDTIME_T_TO_DOUBLE(cache_flush_timeout),
          CDTIME_T_TO_DOUBLE(cache_timeout),
          CDTIME_T_TO_DOUBLE(cache_timeout * 10));