aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2016-07-19 10:52:06 -0400
committerTom Yu <tlyu@mit.edu>2016-07-19 18:05:20 -0400
commit857b82485a67094bbb2d73eb7572366878a4a9a9 (patch)
treef3b28ed8060cb2fd81da1711a8ad0392fb4634fe
parentffd4a365e226df422c8978e819c5080c07547126 (diff)
downloadkrb5-857b82485a67094bbb2d73eb7572366878a4a9a9.zip
krb5-857b82485a67094bbb2d73eb7572366878a4a9a9.tar.gz
krb5-857b82485a67094bbb2d73eb7572366878a4a9a9.tar.bz2
Fix error code on clpreauth module failure
Commit 632260bd1fccfb420f0827b59c85c329203eafc9 (ticket #7517) allows better error reporting for some client pre-authentication failures. However, it breaks an assumption in the S4U2Self code that such errors can be recognized by the KRB5_PREAUTH_FAILED error code. Instead of passing through the error code reported by the first real preauth module, wrap that error and return KRB5_PREAUTH_FAILED. (cherry picked from commit 560e11dabb63b141df29c54aaa2e120309a1e021) ticket: 8457 version_fixed: 1.14.3
-rw-r--r--src/lib/krb5/krb/preauth2.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/krb5/krb/preauth2.c b/src/lib/krb5/krb/preauth2.c
index 783bb31..ca26fb0 100644
--- a/src/lib/krb5/krb/preauth2.c
+++ b/src/lib/krb5/krb/preauth2.c
@@ -638,8 +638,12 @@ process_pa_data(krb5_context context, krb5_init_creds_context ctx,
if (must_preauth) {
/* No real preauth types succeeded and we needed to preauthenticate. */
- ret = (save.code != 0) ? k5_restore_ctx_error(context, &save) :
- KRB5_PREAUTH_FAILED;
+ if (save.code != 0) {
+ ret = k5_restore_ctx_error(context, &save);
+ k5_wrapmsg(context, ret, KRB5_PREAUTH_FAILED,
+ _("Pre-authentication failed"));
+ }
+ ret = KRB5_PREAUTH_FAILED;
}
cleanup: