From 89676692402d8a58415b2c11256652322091ebab Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 7 Jun 2011 15:18:19 +0300 Subject: [PATCH] ldap: Fixed random assert-crashing with with sasl_bind=yes. --- src/auth/db-ldap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/auth/db-ldap.c b/src/auth/db-ldap.c index 6a451f4fa5..84bdb8c031 100644 --- a/src/auth/db-ldap.c +++ b/src/auth/db-ldap.c @@ -328,7 +328,10 @@ static bool db_ldap_request_queue_next(struct ldap_connection *conn) struct ldap_request *const *requestp, *request; int ret = -1; - i_assert(conn->pending_count <= aqueue_count(conn->request_queue)); + /* connecting may call db_ldap_connect_finish(), which gets us back + here. so do the connection before checking the request queue. */ + if (db_ldap_connect(conn) < 0) + return FALSE; if (conn->pending_count == aqueue_count(conn->request_queue)) { /* no non-pending requests */ @@ -339,9 +342,6 @@ static bool db_ldap_request_queue_next(struct ldap_connection *conn) return FALSE; } - if (db_ldap_connect(conn) < 0) - return FALSE; - requestp = array_idx(&conn->request_array, aqueue_idx(conn->request_queue, conn->pending_count)); -- 2.47.3