From 9bbc63ed653e6ca73e4eaebd6f52466d53a4da73 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Sun, 29 Jan 2012 02:22:11 +0000 Subject: Call bufferevent_free before closing file descriptor associated with it or bugs in $EventMechanism on $OtherOS makes libevent get it's knickers in a twist. From Dylan Alex Simon. --- server-client.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'server-client.c') diff --git a/server-client.c b/server-client.c index 45801eb9..9ee9e26f 100644 --- a/server-client.c +++ b/server-client.c @@ -124,24 +124,24 @@ server_client_lost(struct client *c) if (c->flags & CLIENT_TERMINAL) tty_free(&c->tty); + if (c->stdin_event != NULL) + bufferevent_free(c->stdin_event); if (c->stdin_fd != -1) { setblocking(c->stdin_fd, 1); close(c->stdin_fd); } - if (c->stdin_event != NULL) - bufferevent_free(c->stdin_event); + if (c->stdout_event != NULL) + bufferevent_free(c->stdout_event); if (c->stdout_fd != -1) { setblocking(c->stdout_fd, 1); close(c->stdout_fd); } - if (c->stdout_event != NULL) - bufferevent_free(c->stdout_event); + if (c->stderr_event != NULL) + bufferevent_free(c->stderr_event); if (c->stderr_fd != -1) { setblocking(c->stderr_fd, 1); close(c->stderr_fd); } - if (c->stderr_event != NULL) - bufferevent_free(c->stderr_event); status_free_jobs(&c->status_new); status_free_jobs(&c->status_old); -- cgit