diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-03-26 21:25:33 +0400 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-03-26 21:25:33 +0400 |
commit | afa7023b465d2abc5a85ecba0917cae974257eaf (patch) | |
tree | 8c8cc570f93e83a6a38f2b184d83cd7f2fa9985e /libbb/xfuncs.c | |
parent | 4e1361a4819ad0fcf76e161bfdcdc8bc29c872ff (diff) |
zcip: make it work on NOMMU (+ improve NOMMU support machinery)
fsck: fix bad English in a comment
Diffstat (limited to 'libbb/xfuncs.c')
-rw-r--r-- | libbb/xfuncs.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c index 14bd62a15..7f870ac8b 100644 --- a/libbb/xfuncs.c +++ b/libbb/xfuncs.c @@ -192,9 +192,16 @@ int wait4pid(int pid) { int status; - if (pid == -1 || waitpid(pid, &status, 0) == -1) return -1; - if (WIFEXITED(status)) return WEXITSTATUS(status); - if (WIFSIGNALED(status)) return WTERMSIG(status); + if (pid <= 0) { + errno = ECHILD; + return -1; + } + if (waitpid(pid, &status, 0) == -1) + return -1; + if (WIFEXITED(status)) + return WEXITSTATUS(status); + if (WIFSIGNALED(status)) + return WTERMSIG(status) + 10000; return 0; } |