X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fcore%2Fkillall.c;h=e3950501075e736230eb3fd970faff65f17b9283;hp=e078012c1b9cc7d3ef9da23d30b6fea12e395075;hb=3772995afa7df42c3a332fb085a27cb5d266b893;hpb=b6e8f1f03dc8b7579f8c6b00372f136d74c45232 diff --git a/src/core/killall.c b/src/core/killall.c index e078012c1..e39505010 100644 --- a/src/core/killall.c +++ b/src/core/killall.c @@ -32,9 +32,8 @@ #define TIMEOUT_USEC (10 * USEC_PER_SEC) static bool ignore_proc(pid_t pid) { - char buf[PATH_MAX]; - FILE *f; - char c; + _cleanup_fclose_ FILE *f = NULL; + char c, *p; size_t count; uid_t uid; int r; @@ -51,15 +50,12 @@ 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"); + p = procfs_file_alloca(pid, "cmdline"); + f = fopen(p, "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)