/* Retain old signal handlers */
static struct sigaction oldsighup;
static struct sigaction oldsigtstp;
+static struct sigaction oldsigwinch;
/* For use in functions which are isolated and don't return the buffer */
static char g_buf[CMD_LEN_MAX] __attribute__ ((aligned));
/* the parent ignores the interrupt, quit and hangup signals */
sigaction(SIGHUP, &(struct sigaction){.sa_handler = SIG_IGN}, &oldsighup);
sigaction(SIGTSTP, &(struct sigaction){.sa_handler = SIG_DFL}, &oldsigtstp);
+ sigaction(SIGWINCH, &(struct sigaction){.sa_handler = SIG_IGN}, &oldsigwinch);
} else if (p == 0) {
/* We create a grandchild to detach */
if (flag & F_NOWAIT) {
/* restore parent's signal handling */
sigaction(SIGHUP, &oldsighup, NULL);
sigaction(SIGTSTP, &oldsigtstp, NULL);
+ sigaction(SIGWINCH, &oldsigwinch, NULL);
return status;
}
act.sa_handler = SIG_IGN;
- if (sigaction(SIGQUIT, &act, NULL) < 0 || sigaction(SIGWINCH, &act, NULL) < 0) {
+ if (sigaction(SIGQUIT, &act, NULL) < 0) {
xerror();
return EXIT_FAILURE;
}