]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: auth-sasl - Manage passdb_success field outside mechanism code
authorStephan Bosch <stephan.bosch@open-xchange.com>
Thu, 5 Oct 2023 22:59:04 +0000 (00:59 +0200)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Thu, 9 Oct 2025 08:41:22 +0000 (08:41 +0000)
src/auth/auth-sasl-mech-dovecot-token.c
src/auth/auth-sasl.c
src/auth/sasl-server-mech-anonymous.c
src/auth/sasl-server-mech-gssapi.c
src/auth/sasl-server-mech-winbind.c

index d9baf47718e7a4d36e8292f2b872bd297f041ed4..0ef5d93971514941554b4f043793d9fd1462bb86 100644 (file)
@@ -56,7 +56,6 @@ mech_dovecot_token_auth_continue(struct sasl_server_mech_request *request,
 
                if (auth_token != NULL &&
                    str_equals_timing_almost_safe(auth_token, valid_token)) {
-                       request->request->passdb_success = TRUE;
                        auth_request_set_field(request->request, "userdb_client_service", service, "");
                        sasl_server_request_success(request, NULL, 0);
                } else {
index 3be72cbf00f39d7359acd11d209d07d3feee462e..c6f9c7d5fbf09b1d632b729aa4e049c3fbc128d9 100644 (file)
@@ -152,6 +152,10 @@ auth_sasl_request_output(struct sasl_server_req_ctx *rctx,
                                                    output->data_size);
                break;
        case SASL_SERVER_OUTPUT_SUCCESS:
+               if (sasl_server_mech_get_passdb_need(rctx->mech) ==
+                               SASL_MECH_PASSDB_NEED_NOTHING)
+                       request->passdb_success = TRUE;
+
                auth_request_success(request, output->data, output->data_size);
                break;
        }
index 95c776f34c9215537e3804f1fc6fab2756c20b4e..17fdea0fa45ef2f1ee0ca593e6c2271fc0151c5e 100644 (file)
@@ -15,7 +15,6 @@ mech_anonymous_auth_continue(struct sasl_server_mech_request *request,
                return;
        }
 
-       request->request->passdb_success = TRUE;
        sasl_server_request_success(request, "", 0);
 }
 
index 07091fe4fca78a7e109b1effa77628c7e233c896..aea09c8206547826c28ad01a8822f90210910630 100644 (file)
@@ -585,7 +585,6 @@ mech_gssapi_unwrap(struct gssapi_auth_request *request, gss_buffer_desc inbuf)
 
        /* Continue in callback once auth_request is populated with passdb
           information. */
-       auth_request->request->passdb_success = TRUE; /* default to success */
        sasl_server_request_lookup_credentials(auth_request, "",
                                               gssapi_credentials_callback);
        (void)gss_release_buffer(&minor_status, &outbuf);
index 5d84cfcbec108854c109fa45d4aedc97a956ea8d..e157480a95245c7759a46f717a7436759c9174a5 100644 (file)
@@ -262,7 +262,6 @@ do_auth_continue(struct winbind_auth_request *request,
                                user))
                        return HR_FAIL;
 
-               request->auth_request.request->passdb_success = TRUE;
                if (gss_spnego && strcmp(token[1], "*") != 0) {
                        buffer_t *buf;