Reset all signal handlers of child processes

... not to disturb check plugins.

refs #6912
This commit is contained in:
Alexander A. Klimov 2024-01-17 12:25:59 +01:00
parent 6c03598678
commit d48b369554
1 changed files with 12 additions and 0 deletions

View File

@ -19,6 +19,7 @@
#ifndef _WIN32
# include <execvpe.h>
# include <poll.h>
# include <signal.h>
# include <string.h>
# ifndef __APPLE__
@ -170,6 +171,17 @@ static Value ProcessSpawnImpl(struct msghdr *msgh, const Dictionary::Ptr& reques
}
#endif /* HAVE_NICE */
{
struct sigaction sa;
memset(&sa, 0, sizeof(sa));
sa.sa_handler = SIG_DFL;
for (int sig = 1; sig <= 31; ++sig) {
(void)sigaction(sig, &sa, nullptr);
}
}
sigset_t mask;
sigemptyset(&mask);
sigprocmask(SIG_SETMASK, &mask, nullptr);