]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: db-ldap - Fix deleting wrong LDAP request when ldap_search() or ldap_bind(...
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 3 Aug 2023 21:31:30 +0000 (00:31 +0300)
committermarkus.valentin <markus.valentin@open-xchange.com>
Tue, 15 Aug 2023 08:41:52 +0000 (08:41 +0000)
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)

src/auth/db-ldap.c

index b3f6d27cffc2b1fc05f756d08d4ef92edc64e13d..2f9f93b23503a05dcef2c6c3d4ea71df46a6d9b2 100644 (file)
@@ -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;
        }