[glib] gspawn: Reset signal handlers for synchronous spawning
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] gspawn: Reset signal handlers for synchronous spawning
- Date: Tue, 14 Jun 2011 23:26:04 +0000 (UTC)
commit 1874ad97d809950901246c940a2b80ba3a6d9390
Author: Colin Walters <walters verbum org>
Date: Fri Jun 10 10:48:07 2011 -0400
gspawn: Reset signal handlers for synchronous spawning
We should by default reset signal handlers; particularly with the
ability to install them via g_unix_signal_source_new(), we don't
want to call a user callback inside a fork()ed helper process.
https://bugzilla.gnome.org/show_bug.cgi?id=652072
glib/gspawn.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
---
diff --git a/glib/gspawn.c b/glib/gspawn.c
index 4cd5a1a..1eed98e 100644
--- a/glib/gspawn.c
+++ b/glib/gspawn.c
@@ -1238,6 +1238,12 @@ fork_exec_with_pipes (gboolean intermediate_child,
/* Immediate child. This may or may not be the child that
* actually execs the new process.
*/
+
+ /* Reset some signal handlers that we may use */
+ signal (SIGCHLD, SIG_DFL);
+ signal (SIGINT, SIG_DFL);
+ signal (SIGTERM, SIG_DFL);
+ signal (SIGHUP, SIG_DFL);
/* Be sure we crash if the parent exits
* and we write to the err_report_pipe
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]