From: Timo Sirainen Date: Fri, 14 Mar 2025 08:40:23 +0000 (+0200) Subject: auth: Fix using passdb_fields with passdb_ldap_bind_userdn=yes X-Git-Tag: 2.4.1~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fheads%2Frelease-3.1.0;p=thirdparty%2Fdovecot%2Fcore.git auth: Fix using passdb_fields with passdb_ldap_bind_userdn=yes --- diff --git a/src/auth/passdb-ldap.c b/src/auth/passdb-ldap.c index 1a21602599..34ebc00503 100644 --- a/src/auth/passdb-ldap.c +++ b/src/auth/passdb-ldap.c @@ -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);