From c7374c31c4ba176e94825e8d734b5abe8a6879b1 Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 13 Jul 2015 15:49:31 +0000 Subject: Initialize cwd fd to -1 so that we don't close fd 0 if the client is destroyed before it is changed. Also allow ttyname() to fail. Fixes problems when running out of file descriptors reported by Bruno Sutic. --- server-client.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'server-client.c') diff --git a/server-client.c b/server-client.c index 9beef4bc..4c03de91 100644 --- a/server-client.c +++ b/server-client.c @@ -96,6 +96,8 @@ server_client_create(int fd) environ_init(&c->environ); + c->cwd = -1; + c->cmdq = cmdq_new(c); c->cmdq->client_exit = 1; @@ -1253,12 +1255,11 @@ server_client_msg_identify(struct client *c, struct imsg *imsg) if (c->fd == -1) return; - if (!isatty(c->fd)) { + if (tty_init(&c->tty, c, c->fd, c->term) != 0) { close(c->fd); c->fd = -1; return; } - tty_init(&c->tty, c, c->fd, c->term); if (c->flags & CLIENT_UTF8) c->tty.flags |= TTY_UTF8; if (c->flags & CLIENT_256COLOURS) -- cgit From e45d624df288d914a1628d373ff245b03f7d600b Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 13 Jul 2015 15:51:31 +0000 Subject: Fix line endings. --- server-client.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'server-client.c') diff --git a/server-client.c b/server-client.c index 4c03de91..09348b05 100644 --- a/server-client.c +++ b/server-client.c @@ -96,8 +96,8 @@ server_client_create(int fd) environ_init(&c->environ); - c->cwd = -1; - + c->cwd = -1; + c->cmdq = cmdq_new(c); c->cmdq->client_exit = 1; @@ -1255,7 +1255,7 @@ server_client_msg_identify(struct client *c, struct imsg *imsg) if (c->fd == -1) return; - if (tty_init(&c->tty, c, c->fd, c->term) != 0) { + if (tty_init(&c->tty, c, c->fd, c->term) != 0) { close(c->fd); c->fd = -1; return; -- cgit