From: Mike Yuan Date: Wed, 18 Oct 2023 15:29:00 +0000 (+0800) Subject: core/service: check error first and log about errno X-Git-Tag: v255-rc1~197^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F29623%2Fhead;p=thirdparty%2Fsystemd.git core/service: check error first and log about errno Follow-up for becdfcb9f1cb555c50dcfe51894cb0b155f7f01e --- diff --git a/src/core/service.c b/src/core/service.c index 02a35bb4ffd..54090251a90 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -1074,10 +1074,10 @@ static int service_is_suitable_main_pid(Service *s, PidRef *pid, int prio) { return log_unit_full_errno(UNIT(s), prio, SYNTHETIC_ERRNO(EPERM), "New main PID "PID_FMT" is the control process, refusing.", pid->pid); r = pidref_is_alive(pid); + if (r < 0) + return log_unit_full_errno(UNIT(s), prio, r, "Failed to check if main PID "PID_FMT" exists or is a zombie: %m", pid->pid); if (r == 0) return log_unit_full_errno(UNIT(s), prio, SYNTHETIC_ERRNO(ESRCH), "New main PID "PID_FMT" does not exist or is a zombie.", pid->pid); - if (r < 0) - return log_unit_full_errno(UNIT(s), prio, r, "Failed to check if main PID "PID_FMT" exists or is a zombie.", pid->pid); owner = manager_get_unit_by_pidref(UNIT(s)->manager, pid); if (owner == UNIT(s)) {