summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorLuca Boccassi <bluca@debian.org>2023-04-15 03:01:52 +0100
committerLuca Boccassi <luca.boccassi@gmail.com>2023-04-17 17:47:28 +0100
commitc9210b74701d749c5b684cc4de517be42baa9c57 (patch)
treeb208d83949a3b25a6c1a74675dffbcbd003ef540 /src/core
parent1034dfd0d8f7b788a64c325b0ca2e1585bf639cf (diff)
downloadsystemd-c9210b74701d749c5b684cc4de517be42baa9c57.tar.gz
creds: make available to all ExecStartPre= and ExecStart= processes
Fixes https://github.com/systemd/systemd/issues/27275
Diffstat (limited to 'src/core')
-rw-r--r--src/core/service.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/service.c b/src/core/service.c
index 1c31782fab..3e4febeaa2 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -2649,6 +2649,7 @@ static void service_run_next_control(Service *s) {
s->control_command,
timeout,
EXEC_APPLY_SANDBOXING|EXEC_APPLY_CHROOT|EXEC_IS_CONTROL|
+ (IN_SET(s->state, SERVICE_CONDITION, SERVICE_START_PRE, SERVICE_START, SERVICE_START_POST, SERVICE_RUNNING, SERVICE_RELOAD) ? EXEC_WRITE_CREDENTIALS : 0)|
(IN_SET(s->control_command_id, SERVICE_EXEC_CONDITION, SERVICE_EXEC_START_PRE, SERVICE_EXEC_STOP_POST) ? EXEC_APPLY_TTY_STDIN : 0)|
(IN_SET(s->control_command_id, SERVICE_EXEC_STOP, SERVICE_EXEC_STOP_POST) ? EXEC_SETENV_RESULT : 0)|
(IN_SET(s->control_command_id, SERVICE_EXEC_START_PRE, SERVICE_EXEC_START) ? EXEC_SETENV_MONITOR_RESULT : 0)|
@@ -2688,7 +2689,7 @@ static void service_run_next_main(Service *s) {
r = service_spawn(s,
s->main_command,
s->timeout_start_usec,
- EXEC_PASS_FDS|EXEC_APPLY_SANDBOXING|EXEC_APPLY_CHROOT|EXEC_APPLY_TTY_STDIN|EXEC_SET_WATCHDOG|EXEC_SETENV_MONITOR_RESULT,
+ EXEC_PASS_FDS|EXEC_APPLY_SANDBOXING|EXEC_APPLY_CHROOT|EXEC_APPLY_TTY_STDIN|EXEC_SET_WATCHDOG|EXEC_SETENV_MONITOR_RESULT|EXEC_WRITE_CREDENTIALS,
&pid);
if (r < 0)
goto fail;