aboutsummaryrefslogtreecommitdiff
path: root/toys/pending/useradd.c
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2014-05-31 12:33:24 -0500
committerRob Landley <rob@landley.net>2014-05-31 12:33:24 -0500
commitd8872c43b48eae5501998a4e5a84337017d8fbe6 (patch)
tree8360d8673d0ed40b02f9d58bdf74b639f6e780f9 /toys/pending/useradd.c
parentb0d97a0059555cb0e7e0009b72c038aa67aaa769 (diff)
downloadtoybox-d8872c43b48eae5501998a4e5a84337017d8fbe6.tar.gz
Introduce xfork() and make commands use it, and make some WEXITSTATUS() use WIFEXITED() and WTERMSIG()+127.
Diffstat (limited to 'toys/pending/useradd.c')
-rw-r--r--toys/pending/useradd.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/toys/pending/useradd.c b/toys/pending/useradd.c
index 450e021a..99e2530f 100644
--- a/toys/pending/useradd.c
+++ b/toys/pending/useradd.c
@@ -58,12 +58,12 @@ static char* get_shell(void)
static int exec_wait(char **args)
{
int status = 0;
- pid_t pid = fork();
+ pid_t pid = xfork();
if (!pid) xexec(args);
- else if (pid > 0) waitpid(pid, &status, 0);
- else perror_exit("fork failed");
- return WEXITSTATUS(status);
+ else if waitpid(pid, &status, 0);
+
+ return WIFEXITED(status) ? WEXITSTATUS(status) : WTERMSIG(status)+127;
}
/* create_copy_skel(), This function will create the home directory of the