]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/nspawn/nspawn-setuid.c
tree-wide: port various places over to use new rearrange_stdio()
[thirdparty/systemd.git] / src / nspawn / nspawn-setuid.c
index 46cdcd2e843b6bfb5e9347303cc15bdc75ef467f..2dee5f8ec8224f27608a75696f4d21481f872dfe 100644 (file)
@@ -54,26 +54,12 @@ static int spawn_getent(const char *database, const char *key, pid_t *rpid) {
         }
         if (r == 0) {
                 char *empty_env = NULL;
-                int nullfd;
 
-                if (dup3(pipe_fds[1], STDOUT_FILENO, 0) < 0)
-                        _exit(EXIT_FAILURE);
-
-                safe_close_above_stdio(pipe_fds[0]);
-                safe_close_above_stdio(pipe_fds[1]);
-
-                nullfd = open("/dev/null", O_RDWR);
-                if (nullfd < 0)
-                        _exit(EXIT_FAILURE);
+                safe_close(pipe_fds[0]);
 
-                if (dup3(nullfd, STDIN_FILENO, 0) < 0)
+                if (rearrange_stdio(-1, pipe_fds[1], -1) < 0)
                         _exit(EXIT_FAILURE);
 
-                if (dup3(nullfd, STDERR_FILENO, 0) < 0)
-                        _exit(EXIT_FAILURE);
-
-                safe_close_above_stdio(nullfd);
-
                 close_all_fds(NULL, 0);
 
                 execle("/usr/bin/getent", "getent", database, key, NULL, &empty_env);