weston-launch: Unblock our signalfd signals before execing child
Giovanni Campagna ran into this with mutter.
This commit is contained in:
@@ -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";
|
||||
|
||||
Reference in New Issue
Block a user