summaryrefslogtreecommitdiffstats
path: root/server-client.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2012-01-29 02:22:11 +0000
committerNicholas Marriott <nicm@openbsd.org>2012-01-29 02:22:11 +0000
commit9bbc63ed653e6ca73e4eaebd6f52466d53a4da73 (patch)
tree22cfe4ad5f8797aa880320ce52b51868b36e59a6 /server-client.c
parenta7a44bfcd9f1eeec2b82b6490b35893dcb7c053f (diff)
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.
Diffstat (limited to 'server-client.c')
-rw-r--r--server-client.c12
1 files changed, 6 insertions, 6 deletions
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);