]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core/exec-invoke: remove redundant fd_cloexec() call
authorMike Yuan <me@yhndnzj.com>
Thu, 30 Nov 2023 11:24:01 +0000 (19:24 +0800)
committerMike Yuan <me@yhndnzj.com>
Thu, 30 Nov 2023 16:14:37 +0000 (00:14 +0800)
src/core/execute-serialize.c
src/core/executor.c

index a874a1eb14f1e5d3b85f8563fdcc2c13287f41c3..b67a4f9141c22c28ebbe62bfcb818aa6aabec8d2 100644 (file)
@@ -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);
index f55bacdbd8e2c2d1fe6a6876481c9c99312fdd02..993cd4a4d2c852e7980b187fd7e6155b084b4b4d 100644 (file)
@@ -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");