Merge branch 'collectd-4.1' into collectd-4.2
[collectd.git] / src / rrdtool.c
index fbd8360..dc06d68 100644 (file)
@@ -654,6 +654,8 @@ static void *rrd_queue_thread (void *data)
 
                /* Write the values to the RRD-file */
                srrd_update (queue_entry->filename, NULL, values_num, values);
+               DEBUG ("rrdtool plugin: queue thread: Wrote %i values to %s",
+                               values_num, queue_entry->filename);
 
                for (i = 0; i < values_num; i++)
                {
@@ -735,9 +737,9 @@ static void rrd_cache_flush (int timeout)
                }
                else /* ancient and no values -> waste of memory */
                {
-                       keys = (char **) realloc ((void *) keys,
+                       char **tmp = (char **) realloc ((void *) keys,
                                        (keys_num + 1) * sizeof (char *));
-                       if (keys == NULL)
+                       if (tmp == NULL)
                        {
                                char errbuf[1024];
                                ERROR ("rrdtool plugin: "
@@ -745,8 +747,10 @@ static void rrd_cache_flush (int timeout)
                                                sstrerror (errno, errbuf,
                                                        sizeof (errbuf)));
                                c_avl_iterator_destroy (iter);
+                               sfree (keys);
                                return;
                        }
+                       keys = tmp;
                        keys[keys_num] = key;
                        keys_num++;
                }
@@ -769,7 +773,7 @@ static void rrd_cache_flush (int timeout)
                keys[i] = NULL;
        } /* for (i = 0..keys_num) */
 
-       free (keys);
+       sfree (keys);
 
        cache_flush_last = now;
 } /* void rrd_cache_flush */