Merge remote-tracking branch 'github/pr/1530'
[collectd.git] / src / swap.c
index e4c5d24..9c63e9b 100644 (file)
@@ -35,6 +35,7 @@
 #endif
 
 #include "collectd.h"
+
 #include "common.h"
 #include "plugin.h"
 
@@ -82,6 +83,10 @@ static derive_t pagesize;
 static _Bool report_by_device = 0;
 /* #endif HAVE_SWAPCTL && HAVE_SWAPCTL_TWO_ARGS */
 
+#elif HAVE_SWAPCTL && HAVE_SWAPCTL_THREE_ARGS
+/* No global variables */
+/* #endif HAVE_SWAPCTL && HAVE_SWAPCTL_THREE_ARGS */
+
 #elif defined(VM_SWAPUSAGE)
 /* No global variables */
 /* #endif defined(VM_SWAPUSAGE) */
@@ -108,9 +113,7 @@ static _Bool values_percentage = 0;
 
 static int swap_config (oconfig_item_t *ci) /* {{{ */
 {
-       int i;
-
-       for (i = 0; i < ci->children_num; i++)
+       for (int i = 0; i < ci->children_num; i++)
        {
                oconfig_item_t *child = ci->children + i;
                if (strcasecmp ("ReportBytes", child->key) == 0)
@@ -505,7 +508,6 @@ static int swap_read (void) /* {{{ */
        char *s_paths;
         int swap_num;
         int status;
-        int i;
 
         gauge_t avail = 0;
         gauge_t total = 0;
@@ -538,7 +540,7 @@ static int swap_read (void) /* {{{ */
                sfree (s);
                return (-1);
        }
-        for (i = 0; i < swap_num; i++)
+        for (int i = 0; i < swap_num; i++)
                s->swt_ent[i].ste_path = s_paths + (i * PATH_MAX);
         s->swt_n = swap_num;
 
@@ -568,7 +570,7 @@ static int swap_read (void) /* {{{ */
                /* less elements returned than requested */
                swap_num = status;
 
-        for (i = 0; i < swap_num; i++)
+        for (int i = 0; i < swap_num; i++)
         {
                char path[PATH_MAX];
                gauge_t this_total;
@@ -621,7 +623,6 @@ static int swap_read (void) /* {{{ */
        struct swapent *swap_entries;
        int swap_num;
        int status;
-       int i;
 
        gauge_t used  = 0;
        gauge_t total = 0;
@@ -660,7 +661,7 @@ static int swap_read (void) /* {{{ */
 
        /* TODO: Report per-device stats. The path name is available from
         * swap_entries[i].se_path */
-       for (i = 0; i < swap_num; i++)
+       for (int i = 0; i < swap_num; i++)
        {
                if ((swap_entries[i].se_flags & SWF_ENABLE) == 0)
                        continue;
@@ -673,6 +674,7 @@ static int swap_read (void) /* {{{ */
        {
                ERROR ("swap plugin: Total swap space (%g) is less than used swap space (%g).",
                                total, used);
+               sfree (swap_entries);
                return (-1);
        }
 
@@ -757,14 +759,13 @@ static int swap_read (void) /* {{{ */
 #elif HAVE_PERFSTAT
 static int swap_read (void) /* {{{ */
 {
-       perfstat_memory_total_t pmemory;
+       perfstat_memory_total_t pmemory = { 0 };
        int status;
 
        gauge_t total;
        gauge_t free;
        gauge_t reserved;
 
-       memset (&pmemory, 0, sizeof (pmemory));
         status = perfstat_memory_total (NULL, &pmemory, sizeof(perfstat_memory_total_t), 1);
        if (status < 0)
        {