Do not set uninitialized signal mask when creating an empty pane.

This commit is contained in:
nicm 2019-09-18 11:37:58 +00:00 committed by Nicholas Marriott
parent 9d1cecea8e
commit f0712a7569

16
spawn.c
View File

@ -330,14 +330,6 @@ spawn_pane(struct spawn_context *sc, char **cause)
cmd_log_argv(new_wp->argc, new_wp->argv, "%s", __func__); cmd_log_argv(new_wp->argc, new_wp->argv, "%s", __func__);
environ_log(child, "%s: environment ", __func__); environ_log(child, "%s: environment ", __func__);
/* If the command is empty, don't fork a child process. */
if (sc->flags & SPAWN_EMPTY) {
new_wp->flags |= PANE_EMPTY;
new_wp->base.mode &= ~MODE_CURSOR;
new_wp->base.mode |= MODE_CRLF;
goto complete;
}
/* Initialize the window size. */ /* Initialize the window size. */
memset(&ws, 0, sizeof ws); memset(&ws, 0, sizeof ws);
ws.ws_col = screen_size_x(&new_wp->base); ws.ws_col = screen_size_x(&new_wp->base);
@ -347,6 +339,14 @@ spawn_pane(struct spawn_context *sc, char **cause)
sigfillset(&set); sigfillset(&set);
sigprocmask(SIG_BLOCK, &set, &oldset); sigprocmask(SIG_BLOCK, &set, &oldset);
/* If the command is empty, don't fork a child process. */
if (sc->flags & SPAWN_EMPTY) {
new_wp->flags |= PANE_EMPTY;
new_wp->base.mode &= ~MODE_CURSOR;
new_wp->base.mode |= MODE_CRLF;
goto complete;
}
/* Fork the new process. */ /* Fork the new process. */
new_wp->pid = fdforkpty(ptm_fd, &new_wp->fd, new_wp->tty, NULL, &ws); new_wp->pid = fdforkpty(ptm_fd, &new_wp->fd, new_wp->tty, NULL, &ws);
if (new_wp->pid == -1) { if (new_wp->pid == -1) {