treewide: cleanup malloc calls
[collectd.git] / src / processes.c
index 924f6ce..d2c0f44 100644 (file)
@@ -262,7 +262,7 @@ static void ps_list_register (const char *name, const char *regexp)
        procstat_t *ptr;
        int status;
 
-       new = (procstat_t *) malloc (sizeof (procstat_t));
+       new = malloc (sizeof (*new));
        if (new == NULL)
        {
                ERROR ("processes plugin: ps_list_register: malloc failed.");
@@ -275,7 +275,7 @@ static void ps_list_register (const char *name, const char *regexp)
        if (regexp != NULL)
        {
                DEBUG ("ProcessMatch: adding \"%s\" as criteria to process %s.", regexp, name);
-               new->re = (regex_t *) malloc (sizeof (regex_t));
+               new->re = malloc (sizeof (*new->re));
                if (new->re == NULL)
                {
                        ERROR ("processes plugin: ps_list_register: malloc failed.");
@@ -314,7 +314,9 @@ static void ps_list_register (const char *name, const char *regexp)
                                        "`ProcessMatch' with the same name. "
                                        "All but the first setting will be "
                                        "ignored.");
+#if HAVE_REGEX_H
                        sfree (new->re);
+#endif
                        sfree (new);
                        return;
                }
@@ -408,7 +410,7 @@ static void ps_list_add (const char *name, const char *cmdline, procstat_entry_t
                {
                        procstat_entry_t *new;
 
-                       new = (procstat_entry_t *) malloc (sizeof (procstat_entry_t));
+                       new = malloc (sizeof (*new));
                        if (new == NULL)
                                return;
                        memset (new, 0, sizeof (procstat_entry_t));
@@ -790,7 +792,7 @@ static void ps_submit_fork_rate (derive_t value)
 
 /* ------- additional functions for KERNEL_LINUX/HAVE_THREAD_INFO ------- */
 #if KERNEL_LINUX
-static procstat_t *ps_read_tasks_status (int pid, procstat_t *ps)
+static procstat_t *ps_read_tasks_status (long pid, procstat_t *ps)
 {
        char           dirname[64];
        DIR           *dh;
@@ -803,7 +805,7 @@ static procstat_t *ps_read_tasks_status (int pid, procstat_t *ps)
        char *fields[8];
        int numfields;
 
-       ssnprintf (dirname, sizeof (dirname), "/proc/%i/task", pid);
+       ssnprintf (dirname, sizeof (dirname), "/proc/%li/task", pid);
 
        if ((dh = opendir (dirname)) == NULL)
        {
@@ -820,7 +822,7 @@ static procstat_t *ps_read_tasks_status (int pid, procstat_t *ps)
 
                tpid = ent->d_name;
 
-               ssnprintf (filename, sizeof (filename), "/proc/%i/task/%s/status", pid, tpid);
+               ssnprintf (filename, sizeof (filename), "/proc/%li/task/%s/status", pid, tpid);
                if ((fh = fopen (filename, "r")) == NULL)
                {
                        DEBUG ("Failed to open file `%s'", filename);
@@ -874,7 +876,7 @@ static procstat_t *ps_read_tasks_status (int pid, procstat_t *ps)
 } /* int *ps_read_tasks_status */
 
 /* Read data from /proc/pid/status */
-static procstat_t *ps_read_status (int pid, procstat_t *ps)
+static procstat_t *ps_read_status (long pid, procstat_t *ps)
 {
        FILE *fh;
        char buffer[1024];
@@ -886,7 +888,7 @@ static procstat_t *ps_read_status (int pid, procstat_t *ps)
        char *fields[8];
        int numfields;
 
-       ssnprintf (filename, sizeof (filename), "/proc/%i/status", pid);
+       ssnprintf (filename, sizeof (filename), "/proc/%li/status", pid);
        if ((fh = fopen (filename, "r")) == NULL)
                return (NULL);
 
@@ -944,7 +946,7 @@ static procstat_t *ps_read_status (int pid, procstat_t *ps)
        return (ps);
 } /* procstat_t *ps_read_vmem */
 
-static procstat_t *ps_read_io (int pid, procstat_t *ps)
+static procstat_t *ps_read_io (long pid, procstat_t *ps)
 {
        FILE *fh;
        char buffer[1024];
@@ -953,7 +955,7 @@ static procstat_t *ps_read_io (int pid, procstat_t *ps)
        char *fields[8];
        int numfields;
 
-       ssnprintf (filename, sizeof (filename), "/proc/%i/io", pid);
+       ssnprintf (filename, sizeof (filename), "/proc/%li/io", pid);
        if ((fh = fopen (filename, "r")) == NULL)
                return (NULL);
 
@@ -999,7 +1001,7 @@ static procstat_t *ps_read_io (int pid, procstat_t *ps)
        return (ps);
 } /* procstat_t *ps_read_io */
 
-int ps_read_process (int pid, procstat_t *ps, char *state)
+static int ps_read_process (long pid, procstat_t *ps, char *state)
 {
        char  filename[64];
        char  buffer[1024];
@@ -1024,7 +1026,7 @@ int ps_read_process (int pid, procstat_t *ps, char *state)
 
        memset (ps, 0, sizeof (procstat_t));
 
-       ssnprintf (filename, sizeof (filename), "/proc/%i/stat", pid);
+       ssnprintf (filename, sizeof (filename), "/proc/%li/stat", pid);
 
        status = read_file_contents (filename, buffer, sizeof(buffer) - 1);
        if (status <= 0)
@@ -1069,9 +1071,9 @@ int ps_read_process (int pid, procstat_t *ps, char *state)
        fields_len = strsplit (buffer_ptr, fields, STATIC_ARRAY_SIZE (fields));
        if (fields_len < 22)
        {
-               DEBUG ("processes plugin: ps_read_process (pid = %i):"
+               DEBUG ("processes plugin: ps_read_process (pid = %li):"
                                " `%s' has only %i fields..",
-                               (int) pid, filename, fields_len);
+                               pid, filename, fields_len);
                return (-1);
        }
 
@@ -1090,7 +1092,7 @@ int ps_read_process (int pid, procstat_t *ps, char *state)
                        /* No VMem data */
                        ps->vmem_data = -1;
                        ps->vmem_code = -1;
-                       DEBUG("ps_read_process: did not get vmem data for pid %i",pid);
+                       DEBUG("ps_read_process: did not get vmem data for pid %li", pid);
                }
                if (ps->num_lwp <= 0)
                        ps->num_lwp = 1;
@@ -1100,7 +1102,7 @@ int ps_read_process (int pid, procstat_t *ps, char *state)
        /* Leave the rest at zero if this is only a zombi */
        if (ps->num_proc == 0)
        {
-               DEBUG ("processes plugin: This is only a zombie: pid = %i; "
+               DEBUG ("processes plugin: This is only a zombie: pid = %li; "
                                "name = %s;", pid, ps->name);
                return (0);
        }
@@ -1140,7 +1142,7 @@ int ps_read_process (int pid, procstat_t *ps, char *state)
                ps->io_syscr = -1;
                ps->io_syscw = -1;
 
-               DEBUG("ps_read_process: not get io data for pid %i",pid);
+               DEBUG("ps_read_process: not get io data for pid %li", pid);
        }
 
        if ( report_ctx_switch )
@@ -1151,7 +1153,7 @@ int ps_read_process (int pid, procstat_t *ps, char *state)
                        ps->cswitch_invol = -1;
 
                        DEBUG("ps_read_tasks_status: not get context "
-                                       "switch data for pid %i",pid);
+                                       "switch data for pid %li", pid);
                }
        }
 
@@ -1159,7 +1161,7 @@ int ps_read_process (int pid, procstat_t *ps, char *state)
        return (0);
 } /* int ps_read_process (...) */
 
-static char *ps_get_cmdline (pid_t pid, char *name, char *buf, size_t buf_len)
+static char *ps_get_cmdline (long pid, char *name, char *buf, size_t buf_len)
 {
        char  *buf_ptr;
        size_t len;
@@ -1172,8 +1174,7 @@ static char *ps_get_cmdline (pid_t pid, char *name, char *buf, size_t buf_len)
        if ((pid < 1) || (NULL == buf) || (buf_len < 2))
                return NULL;
 
-       ssnprintf (file, sizeof (file), "/proc/%u/cmdline",
-                       (unsigned int) pid);
+       ssnprintf (file, sizeof (file), "/proc/%li/cmdline", pid);
 
        errno = 0;
        fd = open (file, O_RDONLY);
@@ -1254,7 +1255,7 @@ static char *ps_get_cmdline (pid_t pid, char *name, char *buf, size_t buf_len)
        return buf;
 } /* char *ps_get_cmdline (...) */
 
-static int read_fork_rate ()
+static int read_fork_rate (void)
 {
        FILE *proc_stat;
        char buffer[1024];
@@ -1301,8 +1302,8 @@ static int read_fork_rate ()
 #endif /*KERNEL_LINUX */
 
 #if KERNEL_SOLARIS
-static const char *ps_get_cmdline (long pid, /* {{{ */
-               char *buffer, size_t buffer_size)
+static char *ps_get_cmdline (long pid, char *name __attribute__((unused)), /* {{{ */
+    char *buffer, size_t buffer_size)
 {
        char path[PATH_MAX];
        psinfo_t info;
@@ -1449,7 +1450,7 @@ static int ps_read_process(long pid, procstat_t *ps, char *state)
  * are retrieved from kstat (module cpu, name sys, class misc, stat nthreads).
  * The result is the sum for all the threads created on each cpu
  */
-static int read_fork_rate()
+static int read_fork_rate (void)
 {
        extern kstat_ctl_t *kc;
        kstat_t *ksp_chain = NULL;
@@ -1800,7 +1801,7 @@ static int ps_read (void)
 
        struct dirent *ent;
        DIR           *proc;
-       int            pid;
+       long           pid;
 
        char cmdline[CMDLINE_BUFFER_SIZE];
 
@@ -1827,7 +1828,7 @@ static int ps_read (void)
                if (!isdigit (ent->d_name[0]))
                        continue;
 
-               if ((pid = atoi (ent->d_name)) < 1)
+               if ((pid = atol (ent->d_name)) < 1)
                        continue;
 
                status = ps_read_process (pid, &ps, &state);
@@ -2415,7 +2416,7 @@ static int ps_read (void)
 
 
                ps_list_add (ps.name,
-                               ps_get_cmdline (pid, cmdline, sizeof (cmdline)),
+                               ps_get_cmdline (pid, ps.name, cmdline, sizeof (cmdline)),
                                &pse);
        } /* while(readdir) */
        closedir (proc);