From: Timo Sirainen Date: Thu, 12 May 2016 21:45:34 +0000 (-0400) Subject: lib-ldap: Fixed assert-crash when killing LDAP connection. X-Git-Tag: 2.3.0.rc1~3738 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2a444bfedc0ee4db6ff92eb7fe5cdfd85b8e3379;p=thirdparty%2Fdovecot%2Fcore.git lib-ldap: Fixed assert-crash when killing LDAP connection. libldap may have already closed the fd, so with epoll io_remove() would try to remove it and crash with: Panic: epoll_ctl(del, 12) failed: Bad file descriptor --- diff --git a/src/lib-ldap/ldap-connection.c b/src/lib-ldap/ldap-connection.c index 35dd0d7c76..1322c9341d 100644 --- a/src/lib-ldap/ldap-connection.c +++ b/src/lib-ldap/ldap-connection.c @@ -552,7 +552,7 @@ int ldap_connection_connect(struct ldap_connection *conn) void ldap_connection_kill(struct ldap_connection *conn) { if (conn->io != NULL) - io_remove(&(conn->io)); + io_remove_closed(&(conn->io)); if (conn->to_disconnect != NULL) timeout_remove(&(conn->to_disconnect)); if (conn->to_reconnect != NULL)