diff --git a/client.c b/client.c index 23cf6ec6..15c29349 100644 --- a/client.c +++ b/client.c @@ -1,4 +1,4 @@ -/* $Id: client.c,v 1.45 2009-03-27 17:04:04 nicm Exp $ */ +/* $Id: client.c,v 1.46 2009-03-31 22:20:42 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -85,9 +85,9 @@ client_init(char *path, struct client_ctx *cctx, int start_server, int flags) server_started: if ((mode = fcntl(cctx->srv_fd, F_GETFL)) == -1) - fatal("fcntl"); + fatal("fcntl failed"); if (fcntl(cctx->srv_fd, F_SETFL, mode|O_NONBLOCK) == -1) - fatal("fcntl"); + fatal("fcntl failed"); cctx->srv_in = buffer_create(BUFSIZ); cctx->srv_out = buffer_create(BUFSIZ); diff --git a/server.c b/server.c index 3795fce1..7d5eb34f 100644 --- a/server.c +++ b/server.c @@ -1,4 +1,4 @@ -/* $Id: server.c,v 1.131 2009-03-28 15:49:05 nicm Exp $ */ +/* $Id: server.c,v 1.132 2009-03-31 22:20:42 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -73,6 +73,8 @@ server_create_client(int fd) fatal("fcntl failed"); if (fcntl(fd, F_SETFL, mode|O_NONBLOCK) == -1) fatal("fcntl failed"); + if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) + fatal("fcntl failed"); c = xcalloc(1, sizeof *c); c->fd = fd; diff --git a/tty.c b/tty.c index 000ac55e..09db0516 100644 --- a/tty.c +++ b/tty.c @@ -1,4 +1,4 @@ -/* $Id: tty.c,v 1.88 2009-03-31 18:39:45 nicm Exp $ */ +/* $Id: tty.c,v 1.89 2009-03-31 22:20:42 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -98,9 +98,11 @@ tty_open(struct tty *tty, char **cause) } if ((mode = fcntl(tty->fd, F_GETFL)) == -1) - fatal("fcntl"); + fatal("fcntl failed"); if (fcntl(tty->fd, F_SETFL, mode|O_NONBLOCK) == -1) - fatal("fcntl"); + fatal("fcntl failedo"); + if (fcntl(tty->fd, F_SETFD, FD_CLOEXEC) == -1) + fatal("fcntl failed"); if (debug_level > 3) tty->log_fd = open("tmux.out", O_WRONLY|O_CREAT|O_TRUNC, 0644);