diff options
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/vfork_daemon_rexec.c | 4 | ||||
-rw-r--r-- | libbb/xvfork.c | 10 |
2 files changed, 11 insertions, 3 deletions
diff --git a/libbb/vfork_daemon_rexec.c b/libbb/vfork_daemon_rexec.c index 9baa813..989e9b8 100644 --- a/libbb/vfork_daemon_rexec.c +++ b/libbb/vfork_daemon_rexec.c @@ -238,9 +238,7 @@ void FAST_FUNC forkexit_or_rexec(char **argv) void FAST_FUNC forkexit_or_rexec(void) { pid_t pid; - pid = fork(); - if (pid < 0) /* wtf? */ - bb_perror_msg_and_die("fork"); + pid = xfork(); if (pid) /* parent */ exit(EXIT_SUCCESS); /* child */ diff --git a/libbb/xvfork.c b/libbb/xvfork.c index a74b49f..3fbd0c1 100644 --- a/libbb/xvfork.c +++ b/libbb/xvfork.c @@ -16,3 +16,13 @@ pid_t FAST_FUNC xvfork(void) bb_perror_msg_and_die("vfork"); return pid; } + +#if BB_MMU +pid_t FAST_FUNC xfork(void) +{ + pid_t pid = fork(); + if (pid < 0) + bb_perror_msg_and_die("vfork" + 1); + return pid; +} +#endif |