X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fsystemctl%2Fsystemctl.c;fp=src%2Fsystemctl%2Fsystemctl.c;h=85c50004f823e8f8de5c5d7db3a700021acf22c4;hp=4e90f68622069fa211a0efc74a4a1ea118437e56;hb=d028e01814a405e83c400c60545785d35dba2a17;hpb=657dbed29af59d519587aedf9f4a6ab921b0668c diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 4e90f6862..85c50004f 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -2851,6 +2851,9 @@ static int check_inhibitors(sd_bus *bus, enum action a) { if (!sv) return log_oom(); + if ((pid_t) pid < 0) + return log_error_errno(ERANGE, "Bad PID %"PRIu32": %m", pid); + if (!strv_contains(sv, a == ACTION_HALT || a == ACTION_POWEROFF || @@ -2862,7 +2865,7 @@ static int check_inhibitors(sd_bus *bus, enum action a) { user = uid_to_name(uid); log_warning("Operation inhibited by \"%s\" (PID "PID_FMT" \"%s\", user %s), reason is \"%s\".", - who, pid, strna(comm), strna(user), why); + who, (pid_t) pid, strna(comm), strna(user), why); c++; }