[gdm] worker: really don't block SIGUSR1
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gdm] worker: really don't block SIGUSR1
- Date: Tue, 2 Sep 2014 19:14:15 +0000 (UTC)
commit abaa3e6cd96ca80560848f17a6a314c8405735d6
Author: Colomban Wendling <ban herbesfolles org>
Date: Mon Sep 1 01:21:04 2014 +0200
worker: really don't block SIGUSR1
The manager process alters the signal mask, so we need to reset it to
the expected default value when launching the session as the signal
mask is inherited from the parent.
https://bugzilla.gnome.org/show_bug.cgi?id=731228
daemon/gdm-session-worker.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c
index bc50b37..89505c2 100644
--- a/daemon/gdm-session-worker.c
+++ b/daemon/gdm-session-worker.c
@@ -1836,6 +1836,7 @@ gdm_session_worker_start_session (GdmSessionWorker *worker,
char *home_dir;
int stdin_fd = -1, stdout_fd = -1, stderr_fd = -1;
gboolean has_journald = FALSE;
+ sigset_t mask;
/* Leak the TTY into the session as stdin so that it stays open
* without any races. */
@@ -1950,6 +1951,13 @@ gdm_session_worker_start_session (GdmSessionWorker *worker,
*/
signal (SIGUSR1, SIG_DFL);
+ /*
+ * Reset signal mask to default since it was altered by the
+ * manager process
+ */
+ sigemptyset (&mask);
+ sigprocmask (SIG_SETMASK, &mask, NULL);
+
gdm_session_execute (worker->priv->arguments[0],
worker->priv->arguments,
(char **)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]