diff -up tmux-1.2/tty.c.writehard tmux-1.2/tty.c --- tmux-1.2/tty.c.writehard 2010-03-08 15:53:49.000000000 +0100 +++ tmux-1.2/tty.c 2010-03-28 12:01:49.335023195 +0200 @@ -300,7 +300,8 @@ tty_free(struct tty *tty) 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 @@ -333,7 +334,8 @@ tty_puts(struct tty *tty, const char *s) bufferevent_write(tty->event, 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 @@ -359,7 +361,8 @@ tty_putc(struct tty *tty, u_char ch) } if (tty->log_fd != -1) - write(tty->log_fd, &ch, 1); + if (write(tty->log_fd, &ch, 1) == -1) + fatal("write failed"); } void @@ -370,7 +373,8 @@ tty_pututf8(struct tty *tty, const struc size = grid_utf8_size(gu); bufferevent_write(tty->event, gu->data, size); if (tty->log_fd != -1) - write(tty->log_fd, gu->data, size); + if(write(tty->log_fd, gu->data, size) == -1) + fatal("write failed"); tty->cx += gu->width; } diff -up tmux-1.2/window.c.writehard tmux-1.2/window.c --- tmux-1.2/window.c.writehard 2010-02-08 19:10:07.000000000 +0100 +++ tmux-1.2/window.c 2010-03-28 12:03:07.316900726 +0200 @@ -518,7 +518,9 @@ window_pane_spawn(struct window_pane *wp 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");