From d8872c43b48eae5501998a4e5a84337017d8fbe6 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Sat, 31 May 2014 12:33:24 -0500 Subject: Introduce xfork() and make commands use it, and make some WEXITSTATUS() use WIFEXITED() and WTERMSIG()+127. --- toys/pending/useradd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'toys/pending/useradd.c') 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 -- cgit v1.2.3