Mercurial > dovecot > core-2.2
changeset 21957:23ea7cc3b559
auth: Filter passdbs on credentials lookup start
Consistency with how plain verify works.
author | Aki Tuomi <aki.tuomi@dovecot.fi> |
---|---|
date | Tue, 11 Apr 2017 15:50:14 +0300 |
parents | fcaed9f9bb3f |
children | 61665dc536ad |
files | src/auth/auth-request.c |
diffstat | 1 files changed, 12 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/auth/auth-request.c Tue Apr 11 15:47:33 2017 +0300 +++ b/src/auth/auth-request.c Tue Apr 11 15:50:14 2017 +0300 @@ -1176,6 +1176,18 @@ 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 ? "<empty>" + : request->mech->mech_name); + callback(PASSDB_RESULT_INTERNAL_FAILURE, NULL, 0, request); + return; + } request->private_callback.lookup_credentials = callback;