From b38ff0cc79eed74c90c3b3f0019885f544039d7d Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Wed, 2 Jul 2025 14:26:35 +0200 Subject: [PATCH] service: fix service log priority in fallback mode Signed-off-by: Joachim Wiberg --- src/service.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/service.c b/src/service.c index f14378a3..954e51b0 100644 --- a/src/service.c +++ b/src/service.c @@ -244,6 +244,9 @@ static void fallback_logger(char *ident, char *prio) int level = LOG_NOTICE; char buf[256]; + strlcpy(buf, prio, sizeof(buf)); + log_parse(buf, &facility, &level); + prctl(PR_SET_NAME, "finitlog", 0, 0, 0); openlog(ident, LOG_NOWAIT | LOG_PID, facility); while ((fgets(buf, sizeof(buf), stdin))) @@ -327,6 +330,11 @@ static int lredirect(svc_t *svc) /* Default syslog identity name[:id] */ tag = svc_ident(svc, buf, sizeof(buf)); + if (svc->log.ident[0]) + tag = svc->log.ident; + if (svc->log.prio[0]) + prio = svc->log.prio; + if (!have_sysklogd && !whichp(_PATH_LOGIT)) { logit(LOG_INFO, _PATH_LOGIT " missing, using syslog for %s instead", svc->name); fallback_logger(tag, prio); @@ -352,11 +360,6 @@ static int lredirect(svc_t *svc) _exit(1); } - if (svc->log.ident[0]) - tag = svc->log.ident; - if (svc->log.prio[0]) - prio = svc->log.prio; - if (have_sysklogd) { char pid[16];