core/exec-invoke: pass the correct pid (1) to processes in pidns

This commit is contained in:
Mike Yuan
2025-11-05 17:47:42 +01:00
parent 675a4841cc
commit 96d4750e7e
+6 -3
View File
@@ -2009,6 +2009,7 @@ static int build_environment(
_cleanup_strv_free_ char **e = NULL;
size_t n = 0;
pid_t exec_pid;
int r;
assert(c);
@@ -2016,10 +2017,12 @@ static int build_environment(
assert(cgroup_context);
assert(ret);
exec_pid = needs_sandboxing && exec_needs_pid_namespace(c, p) ? 1 : getpid_cached();
if (p->n_socket_fds + p->n_stashed_fds > 0) {
_cleanup_free_ char *joined = NULL;
r = strv_extendf_with_size(&e, &n, "LISTEN_PID="PID_FMT, getpid_cached());
r = strv_extendf_with_size(&e, &n, "LISTEN_PID="PID_FMT, exec_pid);
if (r < 0)
return r;
@@ -2044,7 +2047,7 @@ static int build_environment(
}
if ((p->flags & EXEC_SET_WATCHDOG) && p->watchdog_usec > 0) {
r = strv_extendf_with_size(&e, &n, "WATCHDOG_PID="PID_FMT, getpid_cached());
r = strv_extendf_with_size(&e, &n, "WATCHDOG_PID="PID_FMT, exec_pid);
if (r < 0)
return r;
@@ -2174,7 +2177,7 @@ static int build_environment(
return r;
}
r = strv_extendf_with_size(&e, &n, "SYSTEMD_EXEC_PID=" PID_FMT, getpid_cached());
r = strv_extendf_with_size(&e, &n, "SYSTEMD_EXEC_PID=" PID_FMT, exec_pid);
if (r < 0)
return r;