summaryrefslogtreecommitdiff
path: root/src/basic/process-util.c
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2023-04-17 02:09:38 +0900
committerMike Yuan <me@yhndnzj.com>2023-04-17 05:46:32 +0800
commit2cd04086ee555ae9b1423f6a4c5adeffd2affd72 (patch)
tree3957c0bdcdc79f638b221994042663269505fd03 /src/basic/process-util.c
parent451812680755bdf62512bc3c174278280d5ce9cb (diff)
downloadsystemd-2cd04086ee555ae9b1423f6a4c5adeffd2affd72.tar.gz
process-util: make safe_fork() unset $NOTIFY_SOCKET
Propagating $NOTIFY_SOCKET is typically dangerous. Let's unset it unless explicitly requested to keep it. Fixes #27288. Replaces #27291.
Diffstat (limited to 'src/basic/process-util.c')
-rw-r--r--src/basic/process-util.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/basic/process-util.c b/src/basic/process-util.c
index 58503cf22d..a9826d94d3 100644
--- a/src/basic/process-util.c
+++ b/src/basic/process-util.c
@@ -1365,6 +1365,14 @@ int safe_fork_full(
}
}
+ if (!FLAGS_SET(flags, FORK_KEEP_NOTIFY_SOCKET)) {
+ r = RET_NERRNO(unsetenv("NOTIFY_SOCKET"));
+ if (r < 0) {
+ log_full_errno(prio, r, "Failed to unset $NOTIFY_SOCKET: %m");
+ _exit(EXIT_FAILURE);
+ }
+ }
+
if (ret_pid)
*ret_pid = getpid_cached();