diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2012-01-29 02:22:11 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2012-01-29 02:22:11 +0000 |
commit | 9bbc63ed653e6ca73e4eaebd6f52466d53a4da73 (patch) | |
tree | 22cfe4ad5f8797aa880320ce52b51868b36e59a6 /server-client.c | |
parent | a7a44bfcd9f1eeec2b82b6490b35893dcb7c053f (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.c | 12 |
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); |