X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fshared%2Fcgroup-show.c;h=ce02b76e368a266b1b7ad4c96b7c7524be5cfd18;hp=cc44ab4ea9ca1700135360cede64eb756f925ce9;hb=05d3a176239c1dd67863c70a5b79d9bc14144ef6;hpb=7ff7394d9e4e9189c30fd018235e6b1728c6f2d0 diff --git a/src/shared/cgroup-show.c b/src/shared/cgroup-show.c index cc44ab4ea..ce02b76e3 100644 --- a/src/shared/cgroup-show.c +++ b/src/shared/cgroup-show.c @@ -44,8 +44,6 @@ static void show_pid_array(int pids[], unsigned n_pids, const char *prefix, unsi unsigned i, m, pid_width; pid_t biggest = 0; - assert(n_pids > 0); - /* Filter duplicates */ m = 0; for (i = 0; i < n_pids; i++) { @@ -65,9 +63,9 @@ static void show_pid_array(int pids[], unsigned n_pids, const char *prefix, unsi 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) @@ -76,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); @@ -87,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); } } @@ -98,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; @@ -106,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;