@@ -87,7 +87,6 @@ int import_fork_tar_x(const char *path, pid_t *ret) {
8787 if (r < 0 )
8888 return r ;
8989 if (r == 0 ) {
90- int null_fd ;
9190 uint64_t retain =
9291 (1ULL << CAP_CHOWN ) |
9392 (1ULL << CAP_FOWNER ) |
@@ -100,26 +99,12 @@ int import_fork_tar_x(const char *path, pid_t *ret) {
10099
101100 pipefd [1 ] = safe_close (pipefd [1 ]);
102101
103- r = move_fd (pipefd [0 ], STDIN_FILENO , false );
102+ r = rearrange_stdio (pipefd [0 ], -1 , STDERR_FILENO );
104103 if (r < 0 ) {
105- log_error_errno (r , "Failed to move fd : %m" );
104+ log_error_errno (r , "Failed to rearrange stdin/stdout : %m" );
106105 _exit (EXIT_FAILURE );
107106 }
108107
109- null_fd = open ("/dev/null" , O_WRONLY |O_NOCTTY );
110- if (null_fd < 0 ) {
111- log_error_errno (errno , "Failed to open /dev/null: %m" );
112- _exit (EXIT_FAILURE );
113- }
114-
115- r = move_fd (null_fd , STDOUT_FILENO , false);
116- if (r < 0 ) {
117- log_error_errno (r , "Failed to move fd: %m" );
118- _exit (EXIT_FAILURE );
119- }
120-
121- stdio_unset_cloexec ();
122-
123108 if (unshare (CLONE_NEWNET ) < 0 )
124109 log_error_errno (errno , "Failed to lock tar into network namespace, ignoring: %m" );
125110
@@ -156,33 +141,18 @@ int import_fork_tar_c(const char *path, pid_t *ret) {
156141 if (r < 0 )
157142 return r ;
158143 if (r == 0 ) {
159- int null_fd ;
160144 uint64_t retain = (1ULL << CAP_DAC_OVERRIDE );
161145
162146 /* Child */
163147
164148 pipefd [0 ] = safe_close (pipefd [0 ]);
165149
166- r = move_fd ( pipefd [1 ], STDOUT_FILENO , false );
150+ r = rearrange_stdio ( -1 , pipefd [1 ], STDERR_FILENO );
167151 if (r < 0 ) {
168- log_error_errno (r , "Failed to move fd : %m" );
152+ log_error_errno (r , "Failed to rearrange stdin/stdout : %m" );
169153 _exit (EXIT_FAILURE );
170154 }
171155
172- null_fd = open ("/dev/null" , O_RDONLY |O_NOCTTY );
173- if (null_fd < 0 ) {
174- log_error_errno (errno , "Failed to open /dev/null: %m" );
175- _exit (EXIT_FAILURE );
176- }
177-
178- r = move_fd (null_fd , STDIN_FILENO , false);
179- if (r < 0 ) {
180- log_error_errno (errno , "Failed to move fd: %m" );
181- _exit (EXIT_FAILURE );
182- }
183-
184- stdio_unset_cloexec ();
185-
186156 if (unshare (CLONE_NEWNET ) < 0 )
187157 log_error_errno (errno , "Failed to lock tar into network namespace, ignoring: %m" );
188158
0 commit comments