Merge branch 'collectd-4.4' into collectd-4.5
[collectd.git] / src / cpu.c
index 2165ce6..e9ab783 100644 (file)
--- a/src/cpu.c
+++ b/src/cpu.c
@@ -180,14 +180,14 @@ static void submit (int cpu_num, const char *type_instance, counter_t value)
        vl.values = values;
        vl.values_len = 1;
        vl.time = time (NULL);
-       strcpy (vl.host, hostname_g);
-       strcpy (vl.plugin, "cpu");
-       snprintf (vl.plugin_instance, sizeof (vl.type_instance),
+       sstrncpy (vl.host, hostname_g, sizeof (vl.host));
+       sstrncpy (vl.plugin, "cpu", sizeof (vl.plugin));
+       ssnprintf (vl.plugin_instance, sizeof (vl.type_instance),
                        "%i", cpu_num);
-       vl.plugin_instance[DATA_MAX_NAME_LEN - 1] = '\0';
-       strcpy (vl.type_instance, type_instance);
+       sstrncpy (vl.type, "cpu", sizeof (vl.type));
+       sstrncpy (vl.type_instance, type_instance, sizeof (vl.type_instance));
 
-       plugin_dispatch_values ("cpu", &vl);
+       plugin_dispatch_values (&vl);
 }
 
 static int cpu_read (void)
@@ -387,13 +387,20 @@ static int cpu_read (void)
 
 #elif defined(HAVE_LIBSTATGRAB)
        sg_cpu_stats *cs;
-       if ((cs = sg_get_cpu_stats ()) == NULL)
-               return (0);
-
-       submit (0, "idle", (counter_t) cs->idle);
-       submit (0, "nice", (counter_t) cs->nice);
-       submit (0, "user", (counter_t) cs->user);
-       submit (0, "system", (counter_t) (cs->kernel+cs->swap+cs->iowait));
+       cs = sg_get_cpu_stats ();
+
+       if (cs == NULL)
+       {
+              ERROR ("cpu plugin: sg_get_cpu_stats failed.");
+               return (-1);
+       }
+
+       submit (0, "idle",   (counter_t) cs->idle);
+       submit (0, "nice",   (counter_t) cs->nice);
+       submit (0, "swap",   (counter_t) cs->swap);
+       submit (0, "system", (counter_t) cs->kernel);
+       submit (0, "user",   (counter_t) cs->user);
+       submit (0, "wait",   (counter_t) cs->iowait);
 #endif /* HAVE_LIBSTATGRAB */
 
        return (0);