aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--server.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/server.c b/server.c
index 3f15ca41..0780e6b1 100644
--- a/server.c
+++ b/server.c
@@ -915,7 +915,12 @@ server_lost_client(struct client *c)
}
log_debug("lost client %d", c->ibuf.fd);
- tty_free(&c->tty);
+ /*
+ * If CLIENT_TERMINAL hasn't been set, then tty_init hasn't been called
+ * and tty_free might close an unrelated fd.
+ */
+ if (c->flags & CLIENT_TERMINAL)
+ tty_free(&c->tty);
screen_free(&c->status);