chiark / gitweb /
use #pragma once instead of foo*foo define guards
[elogind.git] / src / shared / cgroup-show.c
index 9ee532ca22271c3dee9f5d0385668975b7f9d4a5..ce02b76e368a266b1b7ad4c96b7c7524be5cfd18 100644 (file)
@@ -40,17 +40,6 @@ static int compare(const void *a, const void *b) {
         return 0;
 }
 
-static unsigned ilog10(unsigned long ul) {
-        int n = 0;
-
-        while (ul > 0) {
-                n++;
-                ul /= 10;
-        }
-
-        return n;
-}
-
 static void show_pid_array(int pids[], unsigned n_pids, const char *prefix, unsigned n_columns, bool extra, bool more, bool kernel_threads, OutputFlags flags) {
         unsigned i, m, pid_width;
         pid_t biggest = 0;
@@ -71,12 +60,12 @@ static void show_pid_array(int pids[], unsigned n_pids, const char *prefix, unsi
                         pids[m++] = pids[i];
         }
         n_pids = m;
-        pid_width = ilog10(biggest);
+        pid_width = DECIMAL_STR_WIDTH(biggest);
 
         /* And sort */
-        qsort(pids, n_pids, sizeof(pid_t), compare);
+        qsort_safe(pids, n_pids, sizeof(pid_t), compare);
 
-        if(flags & OUTPUT_FULL_WIDTH)
+        if (flags & OUTPUT_FULL_WIDTH)
                 n_columns = 0;
         else {
                 if (n_columns > pid_width+2)
@@ -85,7 +74,7 @@ static void show_pid_array(int pids[], unsigned n_pids, const char *prefix, unsi
                         n_columns = 20;
         }
         for (i = 0; i < n_pids; i++) {
-                char *t = NULL;
+                _cleanup_free_ char *t = NULL;
 
                 get_process_cmdline(pids[i], n_columns, true, &t);
 
@@ -96,8 +85,6 @@ static void show_pid_array(int pids[], unsigned n_pids, const char *prefix, unsi
                        pid_width,
                        (unsigned long) pids[i],
                        strna(t));
-
-                free(t);
         }
 }
 
@@ -107,7 +94,7 @@ static int show_cgroup_one_by_path(const char *path, const char *prefix, unsigne
         _cleanup_fclose_ FILE *f = NULL;
         size_t n = 0, n_allocated = 0;
         _cleanup_free_ pid_t *pids = NULL;
-        char *p = NULL;
+        _cleanup_free_ char *p = NULL;
         pid_t pid;
         int r;
 
@@ -115,13 +102,8 @@ static int show_cgroup_one_by_path(const char *path, const char *prefix, unsigne
         if (r < 0)
                 return r;
 
-        fn = strappend(p, "/cgroup.procs");
-        free(p);
-        if (!fn)
-                return -ENOMEM;
-
+        fn = strappenda(p, "/cgroup.procs");
         f = fopen(fn, "re");
-        free(fn);
         if (!f)
                 return -errno;
 
@@ -248,11 +230,10 @@ int show_cgroup(const char *controller, const char *path, const char *prefix, un
 }
 
 static int show_extra_pids(const char *controller, const char *path, const char *prefix, unsigned n_columns, const pid_t pids[], unsigned n_pids, OutputFlags flags) {
-        pid_t _cleanup_free_ *copy = NULL;
+        _cleanup_free_ pid_t *copy = NULL;
         unsigned i, j;
         int r;
 
-        assert(controller);
         assert(path);
 
         if (n_pids <= 0)
@@ -268,7 +249,7 @@ static int show_extra_pids(const char *controller, const char *path, const char
                 return -ENOMEM;
 
         for (i = 0, j = 0; i < n_pids; i++) {
-                char _cleanup_free_ *k = NULL;
+                _cleanup_free_ char *k = NULL;
 
                 r = cg_pid_get_path(controller, pids[i], &k);
                 if (r < 0)