summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2012-12-03 13:24:07 -0500
committerColin Walters <walters@verbum.org>2012-12-03 14:07:01 -0500
commit907deabe9f879c1a9079679975f3cde8c1e5e717 (patch)
treea187d4a34b4b3c0e65bf73b6b28a55256f07bbd2
parent5cd90ebcf1acc302e7d2f9ca84af2300bd582023 (diff)
downloadgdm-907deabe9f879c1a9079679975f3cde8c1e5e717.tar.gz
Remove handling of SIGSEGV/SIGFPE/SIGILL etc.
Modern operating systems have "crash catching" functionality; for example, systemd comes with "systemd-coredump" which collects cores automatically. Attempting to handle these kinds of fatal signals internally is now much worse, because the original source of the problem will be masked. systemd won't collect a core file that would include a backtrace, for example. Also, with these removed, we can move forward porting to g_unix_signal_add().
-rw-r--r--daemon/main.c9
-rw-r--r--daemon/session-worker-main.c22
-rw-r--r--daemon/simple-slave-main.c22
-rw-r--r--daemon/xdmcp-chooser-slave-main.c22
-rw-r--r--gui/simple-greeter/greeter-main.c9
5 files changed, 0 insertions, 84 deletions
diff --git a/daemon/main.c b/daemon/main.c
index b1c644f3..a5a3b52c 100644
--- a/daemon/main.c
+++ b/daemon/main.c
@@ -277,14 +277,6 @@ signal_cb (int signo,
ret = TRUE;
switch (signo) {
- case SIGFPE:
- case SIGPIPE:
- /* let the fatal signals interrupt us */
- g_debug ("Caught signal %d, shutting down abnormally.", signo);
- ret = FALSE;
-
- break;
-
case SIGINT:
case SIGTERM:
/* let the fatal signals interrupt us */
@@ -447,7 +439,6 @@ main (int argc,
gdm_signal_handler_add_fatal (signal_handler);
gdm_signal_handler_add (signal_handler, SIGTERM, signal_cb, NULL);
gdm_signal_handler_add (signal_handler, SIGINT, signal_cb, NULL);
- gdm_signal_handler_add (signal_handler, SIGFPE, signal_cb, NULL);
gdm_signal_handler_add (signal_handler, SIGHUP, signal_cb, NULL);
gdm_signal_handler_add (signal_handler, SIGUSR1, signal_cb, NULL);
diff --git a/daemon/session-worker-main.c b/daemon/session-worker-main.c
index a1f92c27..3383e66d 100644
--- a/daemon/session-worker-main.c
+++ b/daemon/session-worker-main.c
@@ -57,23 +57,6 @@ signal_cb (int signo,
ret = TRUE;
switch (signo) {
- case SIGSEGV:
- case SIGBUS:
- case SIGILL:
- case SIGABRT:
- g_debug ("Caught signal %d.", signo);
-
- ret = FALSE;
- break;
-
- case SIGFPE:
- case SIGPIPE:
- /* let the fatal signals interrupt us */
- g_debug ("Caught signal %d, shutting down abnormally.", signo);
- ret = FALSE;
-
- break;
-
case SIGINT:
case SIGTERM:
/* let the fatal signals interrupt us */
@@ -185,12 +168,7 @@ main (int argc,
(GDestroyNotify)g_main_loop_quit,
main_loop);
gdm_signal_handler_add (signal_handler, SIGINT, signal_cb, NULL);
- gdm_signal_handler_add (signal_handler, SIGILL, signal_cb, NULL);
- gdm_signal_handler_add (signal_handler, SIGBUS, signal_cb, NULL);
- gdm_signal_handler_add (signal_handler, SIGFPE, signal_cb, NULL);
gdm_signal_handler_add (signal_handler, SIGHUP, signal_cb, NULL);
- gdm_signal_handler_add (signal_handler, SIGSEGV, signal_cb, NULL);
- gdm_signal_handler_add (signal_handler, SIGABRT, signal_cb, NULL);
gdm_signal_handler_add (signal_handler, SIGUSR1, signal_cb, NULL);
g_main_loop_run (main_loop);
diff --git a/daemon/simple-slave-main.c b/daemon/simple-slave-main.c
index 695a80a4..866d814d 100644
--- a/daemon/simple-slave-main.c
+++ b/daemon/simple-slave-main.c
@@ -81,23 +81,6 @@ signal_cb (int signo,
ret = TRUE;
switch (signo) {
- case SIGSEGV:
- case SIGBUS:
- case SIGILL:
- case SIGABRT:
- g_debug ("Caught signal %d.", signo);
-
- ret = FALSE;
- break;
-
- case SIGFPE:
- case SIGPIPE:
- /* let the fatal signals interrupt us */
- g_debug ("Caught signal %d, shutting down abnormally.", signo);
- ret = FALSE;
-
- break;
-
case SIGINT:
case SIGTERM:
/* let the fatal signals interrupt us */
@@ -232,12 +215,7 @@ main (int argc,
main_loop);
gdm_signal_handler_add (signal_handler, SIGTERM, signal_cb, NULL);
gdm_signal_handler_add (signal_handler, SIGINT, signal_cb, NULL);
- gdm_signal_handler_add (signal_handler, SIGILL, signal_cb, NULL);
- gdm_signal_handler_add (signal_handler, SIGBUS, signal_cb, NULL);
- gdm_signal_handler_add (signal_handler, SIGFPE, signal_cb, NULL);
gdm_signal_handler_add (signal_handler, SIGHUP, signal_cb, NULL);
- gdm_signal_handler_add (signal_handler, SIGSEGV, signal_cb, NULL);
- gdm_signal_handler_add (signal_handler, SIGABRT, signal_cb, NULL);
gdm_signal_handler_add (signal_handler, SIGUSR1, signal_cb, NULL);
gdm_signal_handler_add (signal_handler, SIGUSR2, signal_cb, NULL);
diff --git a/daemon/xdmcp-chooser-slave-main.c b/daemon/xdmcp-chooser-slave-main.c
index dbe1330c..8b58abaa 100644
--- a/daemon/xdmcp-chooser-slave-main.c
+++ b/daemon/xdmcp-chooser-slave-main.c
@@ -80,23 +80,6 @@ signal_cb (int signo,
ret = TRUE;
switch (signo) {
- case SIGSEGV:
- case SIGBUS:
- case SIGILL:
- case SIGABRT:
- g_debug ("Caught signal %d.", signo);
-
- ret = FALSE;
- break;
-
- case SIGFPE:
- case SIGPIPE:
- /* let the fatal signals interrupt us */
- g_debug ("Caught signal %d, shutting down abnormally.", signo);
- ret = FALSE;
-
- break;
-
case SIGINT:
case SIGTERM:
/* let the fatal signals interrupt us */
@@ -225,12 +208,7 @@ main (int argc,
main_loop);
gdm_signal_handler_add (signal_handler, SIGTERM, signal_cb, NULL);
gdm_signal_handler_add (signal_handler, SIGINT, signal_cb, NULL);
- gdm_signal_handler_add (signal_handler, SIGILL, signal_cb, NULL);
- gdm_signal_handler_add (signal_handler, SIGBUS, signal_cb, NULL);
- gdm_signal_handler_add (signal_handler, SIGFPE, signal_cb, NULL);
gdm_signal_handler_add (signal_handler, SIGHUP, signal_cb, NULL);
- gdm_signal_handler_add (signal_handler, SIGSEGV, signal_cb, NULL);
- gdm_signal_handler_add (signal_handler, SIGABRT, signal_cb, NULL);
gdm_signal_handler_add (signal_handler, SIGUSR1, signal_cb, NULL);
gdm_signal_handler_add (signal_handler, SIGUSR2, signal_cb, NULL);
diff --git a/gui/simple-greeter/greeter-main.c b/gui/simple-greeter/greeter-main.c
index f9fb99f7..7d9632c2 100644
--- a/gui/simple-greeter/greeter-main.c
+++ b/gui/simple-greeter/greeter-main.c
@@ -79,14 +79,6 @@ signal_cb (int signo,
ret = TRUE;
switch (signo) {
- case SIGFPE:
- case SIGPIPE:
- /* let the fatal signals interrupt us */
- g_debug ("Caught signal %d, shutting down abnormally.", signo);
- ret = FALSE;
-
- break;
-
case SIGINT:
case SIGTERM:
/* let the fatal signals interrupt us */
@@ -299,7 +291,6 @@ main (int argc, char *argv[])
gdm_signal_handler_add_fatal (signal_handler);
gdm_signal_handler_add (signal_handler, SIGTERM, signal_cb, NULL);
gdm_signal_handler_add (signal_handler, SIGINT, signal_cb, NULL);
- gdm_signal_handler_add (signal_handler, SIGFPE, signal_cb, NULL);
gdm_signal_handler_add (signal_handler, SIGHUP, signal_cb, NULL);
gdm_signal_handler_add (signal_handler, SIGUSR1, signal_cb, NULL);