]> git.ipfire.org Git - thirdparty/krb5.git/commit
Fix S4U user identification in preauth case
authorGreg Hudson <ghudson@mit.edu>
Thu, 24 May 2012 17:03:26 +0000 (13:03 -0400)
committerTom Yu <tlyu@mit.edu>
Tue, 29 May 2012 20:13:36 +0000 (16:13 -0400)
commite934d973eb7e43792062ee1a6b4396ca41d0f862
tree397e38621e2e63e2d67eafa1d52d07166d344847
parentd0e740185b3f5732055dfa9a76a98c193d36b412
Fix S4U user identification in preauth case

In 1.10, encrypted timestamp became a built-in module instead of a
hardcoded padata handler.  This changed the behavior of
krb5_get_init_creds as invoked by s4u_identify_user such that
KRB5_PREAUTH_FAILED is returned instead of the gak function's error.
(Module failures are not treated as hard errors, while hardcoded
padata handler errors are.)  Accordingly, we should look for
KRB5_PREAUTH_FAILED in s4u_identify_user.

On a less harmful note, the gak function was returning a protocol
error code instead of a com_err code, and the caller was testing for a
different protocol error code (KDC_ERR_PREAUTH_REQUIRED) which could
never be returned by krb5_get_init_creds.  Clean up both of those by
returning KRB5_PREAUTH_FAILED from the gak function and testing for
that alone.

Reported by Michael Morony.

(cherry picked from commit 33a64a7f9dc7342880f7a477a8b3447891d20af5)

ticket: 7136
version_fixed: 1.10.2
status: resolved
src/lib/krb5/krb/s4u_creds.c