From: Mike Yuan Date: Thu, 30 Nov 2023 11:24:01 +0000 (+0800) Subject: core/exec-invoke: remove redundant fd_cloexec() call X-Git-Tag: v256-rc1~1568^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f38cbaff63e662c8a1aa0c7708e0e796d6c3aee2;p=thirdparty%2Fsystemd.git core/exec-invoke: remove redundant fd_cloexec() call --- diff --git a/src/core/execute-serialize.c b/src/core/execute-serialize.c index a874a1eb14f..b67a4f9141c 100644 --- a/src/core/execute-serialize.c +++ b/src/core/execute-serialize.c @@ -1610,12 +1610,6 @@ static int exec_parameters_deserialize(ExecParameters *p, FILE *f, FDSet *fds) { if (fd < 0) continue; - /* This is special and relies on close-on-exec semantics, make sure it's - * there */ - r = fd_cloexec(fd, true); - if (r < 0) - return r; - p->exec_fd = fd; } else if ((val = startswith(l, "exec-parameters-bpf-outer-map-fd="))) { int fd; @@ -1624,12 +1618,6 @@ static int exec_parameters_deserialize(ExecParameters *p, FILE *f, FDSet *fds) { if (fd < 0) continue; - /* This is special and relies on close-on-exec semantics, make sure it's - * there */ - r = fd_cloexec(fd, true); - if (r < 0) - return r; - p->bpf_outer_map_fd = fd; } else if ((val = startswith(l, "exec-parameters-notify-socket="))) { r = free_and_strdup(&p->notify_socket, val); diff --git a/src/core/executor.c b/src/core/executor.c index f55bacdbd8e..993cd4a4d2c 100644 --- a/src/core/executor.c +++ b/src/core/executor.c @@ -204,7 +204,9 @@ int main(int argc, char *argv[]) { log_set_prohibit_ipc(false); log_open(); - /* The serialization fd is set to CLOEXEC in parse_argv, so it's also filtered. */ + /* This call would collect all passed fds and enable CLOEXEC. We'll unset it in exec_invoke (flag_fds) + * for fds that shall be passed to the child. + * The serialization fd is set to CLOEXEC in parse_argv, so it's also filtered. */ r = fdset_new_fill(/* filter_cloexec= */ 0, &fdset); if (r < 0) return log_error_errno(r, "Failed to create fd set: %m");