Commit 2cd48523 authored by Sergey Lyubka's avatar Sergey Lyubka

Restore SIGCHLD handler to SIG_DFL in CGI process

parent 1eb719f2
......@@ -1395,6 +1395,12 @@ static pid_t spawn_process(struct mg_connection *conn, const char *prog,
(void) close(fd_stdin);
(void) close(fd_stdout);
// After exec, all signal handlers are restored to their default values,
// with one exception of SIGCHLD. According to POSIX.1-2001 and Linux's
// implementation, SIGCHLD's handler will leave unchanged after exec
// if it was set to be ignored. Restore it to default action.
signal(SIGCHLD, SIG_DFL);
interp = conn->ctx->config[CGI_INTERPRETER];
if (interp == NULL) {
(void) execle(prog, prog, NULL, envp);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment