From: Timo Sirainen Date: Thu, 3 Aug 2023 21:31:30 +0000 (+0300) Subject: auth: db-ldap - Fix deleting wrong LDAP request when ldap_search() or ldap_bind(... X-Git-Tag: 2.4.0~2621 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bbb600e46ca650a3a5ef812ea3a1e8c45a6ea0ba;p=thirdparty%2Fdovecot%2Fcore.git auth: db-ldap - Fix deleting wrong LDAP request when ldap_search() or ldap_bind() failed This mainly means that if an invalid LDAP filter was used, wrong request could have become deleted. Fixes: Error: ldap(...): Reply with unknown msgid 2 Panic: file db-ldap.c: line 1343 (db_ldap_conn_close): assertion failed: (request->msgid != -1) --- diff --git a/src/auth/db-ldap.c b/src/auth/db-ldap.c index b3f6d27cff..2f9f93b235 100644 --- a/src/auth/db-ldap.c +++ b/src/auth/db-ldap.c @@ -433,7 +433,7 @@ static bool db_ldap_request_queue_next(struct ldap_connection *conn) return FALSE; } else { /* broken request, remove from queue */ - aqueue_delete_tail(conn->request_queue); + aqueue_delete(conn->request_queue, conn->pending_count); request->callback(conn, request, NULL); return TRUE; }