slave: restore signal mask

This commit is contained in:
Daniel Eklöf 2020-05-21 20:22:24 +02:00
parent 789617d5ad
commit c605503df6
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 5 additions and 1 deletions

View file

@ -42,6 +42,7 @@
* Rare crash when scrolling and the new viewport ended up **exactly**
on the wrap around.
* Selection handling when viewport wrapped around.
* Restore signal mask in the slave process.
### Security

View file

@ -166,10 +166,13 @@ slave_spawn(int ptmx, int argc, const char *cwd, char *const *argv,
}
/* Restore signals */
sigset_t mask;
sigemptyset(&mask);
const struct sigaction sa = {.sa_handler = SIG_DFL};
if (sigaction(SIGINT, &sa, NULL) < 0 ||
sigaction(SIGTERM, &sa, NULL) < 0 ||
sigaction(SIGHUP, &sa, NULL) < 0)
sigaction(SIGHUP, &sa, NULL) < 0 ||
sigprocmask(SIG_SETMASK, &mask, NULL) < 0)
{
const int _errno = errno;
LOG_ERRNO_P("failed to restore signals", errno);