weston-launch: Unblock our signalfd signals before execing child

Giovanni Campagna ran into this with mutter.
dev
Kristian Høgsberg 11 years ago
parent c30c4bd6c8
commit 73c60ab6e9
  1. 8
      src/weston-launch.c

@ -542,6 +542,7 @@ static void
launch_compositor(struct weston_launch *wl, int argc, char *argv[])
{
char *child_argv[MAX_ARGV_SIZE];
sigset_t allsigs;
int i;
if (wl->verbose)
@ -556,6 +557,13 @@ launch_compositor(struct weston_launch *wl, int argc, char *argv[])
unsetenv("DISPLAY");
/* Do not give our signal mask to the new process. */
sigemptyset(&mask);
sigaddset(&mask, SIGTERM);
sigaddset(&mask, SIGCHLD);
sigaddset(&mask, SIGINT);
sigprocmask(SIG_UNBLOCK, &mask, NULL);
child_argv[0] = wl->pw->pw_shell;
child_argv[1] = "-l";
child_argv[2] = "-c";

Loading…
Cancel
Save