diff options
author | James Turner <james@calminferno.net> | 2014-04-09 21:36:45 -0400 |
---|---|---|
committer | James Turner <james@calminferno.net> | 2014-04-09 21:36:45 -0400 |
commit | 90be9f6501860a22f694ef1659bef4d9182154e8 (patch) | |
tree | a38cf332eb9ca7b9c8066cfa4bd7b6fcc3cbc465 | |
parent | 178fb764cf7835f3e0090b1a970742678333f8af (diff) |
Make sure zombie processes are left over
-rw-r--r-- | pop3d.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -203,8 +203,9 @@ sig_handler(int sig, short event, void *arg) event_loopexit(NULL); break; case SIGCHLD: - if (waitpid(pop3e_pid, &status, WNOHANG) > 0) - if (WIFEXITED(status) || WIFSIGNALED(status)) { + if (waitpid(WAIT_ANY, &status, WNOHANG) > 0) + if ((WIFEXITED(status) && WEXITSTATUS(status) != 0) || + WIFSIGNALED(status)) { logit(LOG_ERR, "Lost pop3 engine"); event_loopexit(NULL); } |