From 87238d9b20804479fa3d1a716128f0b2a92804d9 Mon Sep 17 00:00:00 2001 From: normal Date: Mon, 2 May 2016 21:04:17 +0000 Subject: process.c (disable_child_handler_fork_child): initialize handler for SIGPIPE This only happens on the !POSIX_SIGNAL case; but one may test with the following: --- a/process.c +++ b/process.c @@ -3479,6 +3479,7 @@ disable_child_handler_fork_parent(struct child_handler_disabler_state *old) #endif } +#undef POSIX_SIGNAL /* This function should be async-signal-safe. Actually it is. */ static int disable_child_handler_fork_child(struct child_handler_disabler_state *old, char *errmsg, size_t errmsg_buflen) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54890 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- process.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'process.c') diff --git a/process.c b/process.c index 660c2c7314..6f3fc235f2 100644 --- a/process.c +++ b/process.c @@ -3502,8 +3502,12 @@ disable_child_handler_fork_child(struct child_handler_disabler_state *old, char for (sig = 1; sig < NSIG; sig++) { int reset = 0; #ifdef SIGPIPE - if (sig == SIGPIPE) + if (sig == SIGPIPE) { reset = 1; +#ifndef POSIX_SIGNAL + handler = SIG_DFL; +#endif + } #endif if (!reset) { #ifdef POSIX_SIGNAL -- cgit v1.2.3