]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: Some unsuccessful passdb lookups weren't returned as failures to passdb lookups.
authorTimo Sirainen <tss@iki.fi>
Fri, 24 Oct 2014 23:42:47 +0000 (02:42 +0300)
committerTimo Sirainen <tss@iki.fi>
Fri, 24 Oct 2014 23:42:47 +0000 (02:42 +0300)
These lookups were only being done internally, so it usually didn't matter.
Also this only affected things like allow_nets checking and some non-common
passdb { result_* } settings.

src/auth/auth-master-connection.c

index a592b2a6bb25ed5d880823f1d02cb5bd10c63216..b3abd1040c3fc0490f593d295fc6194f5f81be18 100644 (file)
@@ -326,6 +326,10 @@ static void pass_callback_finish(struct auth_request *auth_request,
        str = t_str_new(128);
        switch (result) {
        case PASSDB_RESULT_OK:
+               if (auth_request->failed || !auth_request->passdb_success) {
+                       str_printfa(str, "FAIL\t%u", auth_request->id);
+                       break;
+               }
                str_printfa(str, "PASS\t%u\tuser=", auth_request->id);
                str_append_tabescaped(str, auth_request->user);
                if (!auth_fields_is_empty(auth_request->extra_fields)) {