diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2012-03-17 18:24:07 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2012-03-17 18:24:07 +0000 |
commit | d3c842d3678e52275c944123f00a2a974eb5d965 (patch) | |
tree | d0b234a4364504e17f53d90aa3e635134c0f01cc /server-client.c | |
parent | a597e3546cf667c2db91aea5545d2cb2125366f5 (diff) |
Check event_initialized before event_del if event may not have been set
up; libevent2 complains about this. Reported by Moriyoshi Koizumi.
Diffstat (limited to 'server-client.c')
-rw-r--r-- | server-client.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/server-client.c b/server-client.c index ba5077e5..2f84f011 100644 --- a/server-client.c +++ b/server-client.c @@ -153,11 +153,13 @@ server_client_lost(struct client *c) evtimer_del(&c->repeat_timer); - evtimer_del(&c->identify_timer); + if (event_initialized(&c->identify_timer)) + evtimer_del(&c->identify_timer); if (c->message_string != NULL) xfree(c->message_string); - evtimer_del(&c->message_timer); + if (event_initialized (&c->message_timer)) + evtimer_del(&c->message_timer); for (i = 0; i < ARRAY_LENGTH(&c->message_log); i++) { msg = &ARRAY_ITEM(&c->message_log, i); xfree(msg->msg); @@ -176,7 +178,8 @@ server_client_lost(struct client *c) close(c->ibuf.fd); imsg_clear(&c->ibuf); - event_del(&c->event); + if (event_initialized(&c->event)) + event_del(&c->event); for (i = 0; i < ARRAY_LENGTH(&dead_clients); i++) { if (ARRAY_ITEM(&dead_clients, i) == NULL) { |