X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fkillall.c;h=a0f57455fb41ffb25062f1d8b33e533f3974215f;hb=a6b26d9011de60e1c41f51e8d2aab1d2f7bbf0f5;hp=e078012c1b9cc7d3ef9da23d30b6fea12e395075;hpb=b6e8f1f03dc8b7579f8c6b00372f136d74c45232;p=elogind.git diff --git a/src/core/killall.c b/src/core/killall.c index e078012c1..a0f57455f 100644 --- a/src/core/killall.c +++ b/src/core/killall.c @@ -32,8 +32,7 @@ #define TIMEOUT_USEC (10 * USEC_PER_SEC) static bool ignore_proc(pid_t pid) { - char buf[PATH_MAX]; - FILE *f; + _cleanup_fclose_ FILE *f = NULL; char c; size_t count; uid_t uid; @@ -51,15 +50,11 @@ static bool ignore_proc(pid_t pid) { if (uid != 0) return false; - snprintf(buf, sizeof(buf), "/proc/%lu/cmdline", (unsigned long) pid); - char_array_0(buf); - - f = fopen(buf, "re"); + f = fopen(procfs_file_alloca(pid, "cmdline"), "re"); if (!f) return true; /* not really, but has the desired effect */ count = fread(&c, 1, 1, f); - fclose(f); /* Kernel threads have an empty cmdline */ if (count <= 0)