]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: Fix using passdb_fields with passdb_ldap_bind_userdn=yes release-3.1.0
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Fri, 14 Mar 2025 08:40:23 +0000 (10:40 +0200)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Fri, 14 Mar 2025 08:40:23 +0000 (10:40 +0200)
src/auth/passdb-ldap.c

index 1a21602599c5007bb9ff649a8e302a8368f06d83..34ebc005035b99f9f4f14eaffc52e50a345f26d5 100644 (file)
@@ -52,9 +52,11 @@ ldap_query_save_result(struct ldap_connection *conn,
 {
        struct db_ldap_field_expand_context ctx = {
                .event = authdb_event(auth_request),
-               .fields = ldap_query_get_fields(auth_request->pool, conn,
-                                               ldap_request, res, FALSE)
        };
+       if (res != NULL) {
+               ctx.fields = ldap_query_get_fields(auth_request->pool, conn,
+                                                  ldap_request, res, FALSE);
+       }
 
        const char *default_password_scheme =
                auth_request->passdb->set->default_password_scheme;
@@ -347,6 +349,8 @@ ldap_verify_plain_auth_bind_userdn(struct auth_request *auth_request,
        struct ldap_connection *conn = module->conn;
        struct ldap_request_bind *brequest = &request->request.bind;
 
+       ldap_query_save_result(conn, auth_request, NULL, NULL);
+
        brequest->request.type = LDAP_REQUEST_TYPE_BIND;
        brequest->dn = p_strdup(auth_request->pool, ldap_set->passdb_ldap_bind_userdn);
         ldap_auth_bind(conn, brequest);