From 9fedd371d33808d0b62c8f3c6dae007046b66b67 Mon Sep 17 00:00:00 2001 From: Aki Tuomi Date: Mon, 6 Mar 2017 13:16:12 +0200 Subject: [PATCH] auth: Apply skips to first passdb This is required to apply filters to first passdb, so that mechanism filters can be applied. --- src/auth/auth-request.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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; -- 2.47.3