# Harden write and chdir because of ignored return value --- a/tty.c +++ b/tty.c @@ -336,7 +336,8 @@ void tty_raw(struct tty *tty, const char *s) { - write(tty->fd, s, strlen(s)); + if (write(tty->fd, s, strlen(s)) == -1) + fatal("write failed"); } void @@ -369,7 +370,8 @@ buffer_write(tty->out, s, strlen(s)); if (tty->log_fd != -1) - write(tty->log_fd, s, strlen(s)); + if (write(tty->log_fd, s, strlen(s)) == -1) + fatal("write failed"); } void @@ -394,7 +396,8 @@ } if (tty->log_fd != -1) - write(tty->log_fd, &ch, 1); + if (write(tty->log_fd, &ch, 1) == -1) + fatal("write failed"); } void @@ -407,7 +410,8 @@ break; buffer_write8(tty->out, gu->data[i]); if (tty->log_fd != -1) - write(tty->log_fd, &gu->data[i], 1); + if (write(tty->log_fd, &gu->data[i], 1) == -1) + fatal("write failed"); } width = utf8_width(gu->data); --- a/window.c +++ b/window.c @@ -490,7 +490,9 @@ return (-1); case 0: if (chdir(wp->cwd) != 0) - chdir("/"); + if (chdir("/") <0 ) + fatal("chdir failed"); + if (tcgetattr(STDIN_FILENO, &tio2) != 0) fatal("tcgetattr failed");