diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-20 15:22:34 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-20 15:22:34 +0000 |
commit | ed95a928eb095f8585bf216a05182a3e30cc9886 (patch) | |
tree | e5039e4c6176a9a4e91f31942e6d2329ff7cc40e /src/providers/ipa/ipa_auth.c | |
parent | Adding upstream version 2.9.4. (diff) | |
download | sssd-upstream.tar.xz sssd-upstream.zip |
Adding upstream version 2.9.5.upstream/2.9.5upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | src/providers/ipa/ipa_auth.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/providers/ipa/ipa_auth.c b/src/providers/ipa/ipa_auth.c index 1d61a10..e5e1bf3 100644 --- a/src/providers/ipa/ipa_auth.c +++ b/src/providers/ipa/ipa_auth.c @@ -258,6 +258,19 @@ static void ipa_pam_auth_handler_krb5_done(struct tevent_req *subreq) if (dp_err != DP_ERR_OK) { goto done; } + if (state->pd->cmd == SSS_PAM_CHAUTHTOK_PRELIM + && state->pd->pam_status == PAM_TRY_AGAIN) { + /* Reset this to fork a new krb5_child in handle_child_send() */ + state->pd->child_pid = 0; + subreq = krb5_auth_queue_send(state, state->ev, state->be_ctx, state->pd, + state->auth_ctx->krb5_auth_ctx); + if (subreq == NULL) { + goto done; + } + + tevent_req_set_callback(subreq, ipa_pam_auth_handler_retry_done, req); + return; + } if (state->pd->cmd == SSS_PAM_AUTHENTICATE && state->pd->pam_status == PAM_CRED_ERR |