weston-launch: Unblock our signalfd signals before execing child

Giovanni Campagna ran into this with mutter.
This commit is contained in:
Kristian Høgsberg 2013-07-30 09:45:04 -07:00
parent 7adbbddee9
commit c5c9571bec

View file

@ -532,6 +532,7 @@ main(int argc, char *argv[])
char *tty = NULL, *new_user = NULL;
char *term;
int sleep_fork = 0;
sigset_t mask;
struct option opts[] = {
{ "user", required_argument, NULL, 'u' },
{ "tty", required_argument, NULL, 't' },
@ -641,6 +642,12 @@ main(int argc, char *argv[])
setuid(wl.pw->pw_uid) < 0)
error(1, errno, "dropping privileges failed");
/* 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);
if (sleep_fork) {
if (wl.verbose)