From 751ca67e0a96d3d76d51ef86e235e6f9f421b6b6 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Thu, 12 Jan 2017 10:50:04 +0100 Subject: [PATCH] Ignore SIGPIPE earlier in the start-up process fixes #13567 --- lib/base/application.cpp | 8 +++++--- lib/base/process.cpp | 1 - 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/base/application.cpp b/lib/base/application.cpp index e81c61edd..fcccd4178 100644 --- a/lib/base/application.cpp +++ b/lib/base/application.cpp @@ -138,6 +138,11 @@ void Application::InitializeBase(void) << boost::errinfo_api_function("WSAStartup") << errinfo_win32_error(WSAGetLastError())); } +#else /* _WIN32 */ + struct sigaction sa; + memset(&sa, 0, sizeof(sa)); + sa.sa_handler = SIG_IGN; + sigaction(SIGPIPE, &sa, NULL); #endif /* _WIN32 */ Loader::ExecuteDeferredInitializers(); @@ -881,9 +886,6 @@ int Application::Run(void) sigaction(SIGINT, &sa, NULL); sigaction(SIGTERM, &sa, NULL); - sa.sa_handler = SIG_IGN; - sigaction(SIGPIPE, &sa, NULL); - sa.sa_handler = &Application::SigUsr1Handler; sigaction(SIGUSR1, &sa, NULL); #else /* _WIN32 */ diff --git a/lib/base/process.cpp b/lib/base/process.cpp index 8fcf37c29..d5db747bf 100644 --- a/lib/base/process.cpp +++ b/lib/base/process.cpp @@ -167,7 +167,6 @@ static Value ProcessSpawnImpl(struct msghdr *msgh, const Dictionary::Ptr& reques sigset_t mask; sigemptyset(&mask); - sigaddset(&mask, SIGPIPE); sigprocmask(SIG_SETMASK, &mask, NULL); if (icinga2_execvpe(argv[0], argv, envp) < 0) {