[strongSwan-dev] SIGPIPE makes charon restart

Emeric POUPON emeric.poupon at stormshield.eu
Thu May 7 09:56:17 CEST 2015


Hello,

I am developing an external monitoring application using vici and I noticed that the PIPE signal is not handled as expected in charon (5.2.2, FreeBSD 9.3)
Indeed when the application unexpectedly quits, a SIGPIPE makes charon restart.

It seems we have to set the signal handler for this signal before instantiating the pool of threads.
This simple naive patch does the job:

diff --git a/src/charon/charon.c b/src/charon/charon.c
index 081e494..cd4562e 100644
--- a/src/charon/charon.c
+++ b/src/charon/charon.c
@@ -298,6 +298,12 @@ int main(int argc, char *argv[])
        /* logging for library during initialization, as we have no bus yet */
        dbg = dbg_stderr;
 
+       action.sa_flags = 0;
+       sigemptyset(&action.sa_mask);
+       action.sa_handler = SIG_IGN;
+       sigaction(SIGPIPE, &action, NULL);
+
        /* initialize library */
        if (!library_init(NULL, "charon"))
        {

(maybe we should set the signal handler for all signals first?)

Regards,

Emeric


More information about the Dev mailing list