From: Aki Tuomi Date: Mon, 6 Mar 2017 11:16:12 +0000 (+0200) Subject: auth: Apply skips to first passdb X-Git-Tag: 2.3.0.rc1~1968 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9fedd371d33808d0b62c8f3c6dae007046b66b67;p=thirdparty%2Fdovecot%2Fcore.git auth: Apply skips to first passdb This is required to apply filters to first passdb, so that mechanism filters can be applied. --- diff --git a/src/auth/auth-request.c b/src/auth/auth-request.c index 3eb035262e..af211e0f73 100644 --- a/src/auth/auth-request.c +++ b/src/auth/auth-request.c @@ -1002,7 +1002,21 @@ void auth_request_verify_plain_continue(struct auth_request *request, return; } - passdb = request->passdb; + passdb = request->passdb; + + while (passdb != NULL && auth_request_want_skip_passdb(request, passdb)) + passdb = passdb->next; + + request->passdb = passdb; + + if (passdb == NULL) { + auth_request_log_error(request, AUTH_SUBSYS_DB, + "All password databases were skipped for mechanism '%s'", + request->mech == NULL ? "" + : request->mech->mech_name); + callback(PASSDB_RESULT_INTERNAL_FAILURE, request); + return; + } request->private_callback.verify_plain = callback;