aboutsummaryrefslogtreecommitdiff
path: root/libbb/vfork_daemon_rexec.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbb/vfork_daemon_rexec.c')
-rw-r--r--libbb/vfork_daemon_rexec.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libbb/vfork_daemon_rexec.c b/libbb/vfork_daemon_rexec.c
index 65271e84f..26e1776a4 100644
--- a/libbb/vfork_daemon_rexec.c
+++ b/libbb/vfork_daemon_rexec.c
@@ -150,6 +150,7 @@ void FAST_FUNC run_noexec_applet_and_exit(int a, const char *name, char **argv)
150 * Higher-level code, hiding optional NOFORK/NOEXEC trickery. 150 * Higher-level code, hiding optional NOFORK/NOEXEC trickery.
151 */ 151 */
152 152
153#if !ENABLE_PLATFORM_MINGW32
153/* This does a fork/exec in one call, using vfork(). Returns PID of new child, 154/* This does a fork/exec in one call, using vfork(). Returns PID of new child,
154 * -1 for failure. Runs argv[0], searching path if that has no / in it. */ 155 * -1 for failure. Runs argv[0], searching path if that has no / in it. */
155pid_t FAST_FUNC spawn(char **argv) 156pid_t FAST_FUNC spawn(char **argv)
@@ -191,6 +192,7 @@ pid_t FAST_FUNC spawn(char **argv)
191 } 192 }
192 return pid; 193 return pid;
193} 194}
195#endif
194 196
195/* Die with an error message if we can't spawn a child process. */ 197/* Die with an error message if we can't spawn a child process. */
196pid_t FAST_FUNC xspawn(char **argv) 198pid_t FAST_FUNC xspawn(char **argv)
@@ -211,6 +213,7 @@ int FAST_FUNC spawn_and_wait(char **argv)
211 if (APPLET_IS_NOFORK(a)) 213 if (APPLET_IS_NOFORK(a))
212 return run_nofork_applet(a, argv); 214 return run_nofork_applet(a, argv);
213# if BB_MMU /* NOEXEC needs fork(), thus this is done only on MMU machines: */ 215# if BB_MMU /* NOEXEC needs fork(), thus this is done only on MMU machines: */
216# if !ENABLE_PLATFORM_MINGW32 /* and then only if not on Microsoft Windows */
214 if (APPLET_IS_NOEXEC(a)) { 217 if (APPLET_IS_NOEXEC(a)) {
215 fflush_all(); 218 fflush_all();
216 rc = fork(); 219 rc = fork();
@@ -220,6 +223,7 @@ int FAST_FUNC spawn_and_wait(char **argv)
220 /* child */ 223 /* child */
221 run_noexec_applet_and_exit(a, argv[0], argv); 224 run_noexec_applet_and_exit(a, argv[0], argv);
222 } 225 }
226# endif
223# endif 227# endif
224 } 228 }
225#endif 229#endif
@@ -227,6 +231,7 @@ int FAST_FUNC spawn_and_wait(char **argv)
227 return wait4pid(rc); 231 return wait4pid(rc);
228} 232}
229 233
234#if !ENABLE_PLATFORM_MINGW32
230#if !BB_MMU 235#if !BB_MMU
231void FAST_FUNC re_exec(char **argv) 236void FAST_FUNC re_exec(char **argv)
232{ 237{
@@ -314,3 +319,4 @@ void FAST_FUNC bb_sanitize_stdio(void)
314{ 319{
315 bb_daemonize_or_rexec(DAEMON_ONLY_SANITIZE, NULL); 320 bb_daemonize_or_rexec(DAEMON_ONLY_SANITIZE, NULL);
316} 321}
322#endif /* !MINGW32 */