From 633e34e2067c3fade64ab04f7b60639c8ab54610 Mon Sep 17 00:00:00 2001 From: Aki Tuomi Date: Tue, 11 Apr 2017 15:50:14 +0300 Subject: [PATCH] auth: Filter passdbs on credentials lookup start Consistency with how plain verify works. --- src/auth/auth-request.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/auth/auth-request.c b/src/auth/auth-request.c index 1f4e272ed9..69b0a8484c 100644 --- a/src/auth/auth-request.c +++ b/src/auth/auth-request.c @@ -1176,6 +1176,18 @@ void auth_request_lookup_credentials_policy_continue(struct auth_request *reques return; } 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, NULL, 0, request); + return; + } request->private_callback.lookup_credentials = callback; -- 2.47.3