From: Zbigniew Jędrzejewski-Szmek Date: Tue, 2 Apr 2013 03:11:54 +0000 (-0400) Subject: shared/cgroup-show: fix leak of "pid" X-Git-Tag: v201~91 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=050fbdb8787fb9e3f4491189cbb0fd1d130fe234 shared/cgroup-show: fix leak of "pid" --- diff --git a/src/shared/cgroup-show.c b/src/shared/cgroup-show.c index 2f2669f82..966af5e24 100644 --- a/src/shared/cgroup-show.c +++ b/src/shared/cgroup-show.c @@ -282,7 +282,7 @@ 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 *copy; + pid_t _cleanup_free_ *copy = NULL; unsigned i, j; int r; @@ -303,13 +303,11 @@ 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 *k; + char _cleanup_free_ *k = NULL; r = cg_get_by_pid(controller, pids[i], &k); - if (r < 0) { - free(copy); + if (r < 0) return r; - } if (path_startswith(k, path)) continue; @@ -319,7 +317,6 @@ static int show_extra_pids(const char *controller, const char *path, const char show_pid_array(copy, j, prefix, n_columns, true, false, false, flags); - free(copy); return 0; }