From 596e8cfab25b4e9377452b1acaca8245ea0ccf89 Mon Sep 17 00:00:00 2001 From: hwangcc23 Date: Thu, 31 Aug 2017 22:38:50 +0800 Subject: [PATCH] Properly initialize sigaction struct The code in skynet_main.c wasn't clearing the struct sigaction before passing it to sigaction(). This meant that we would block a random set of signals while executing the SIGPIPE handler, or jump to the uninitialized __sa_sigaction__ (instead of sa_handler). Initialize properly as we do in skynet_start.c. --- skynet-src/skynet_main.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/skynet-src/skynet_main.c b/skynet-src/skynet_main.c index f08feef2..3e394d11 100644 --- a/skynet-src/skynet_main.c +++ b/skynet-src/skynet_main.c @@ -78,6 +78,8 @@ _init_env(lua_State *L) { int sigign() { struct sigaction sa; sa.sa_handler = SIG_IGN; + sa.sa_flags = 0; + sigemptyset(&sa.sa_mask); sigaction(SIGPIPE, &sa, 0); return 0; }