commit 26e202d26b47d62fbff4f153fc7f03cc300cc4ab Author: Nalin Dahyabhai Date: Mon Sep 8 13:34:05 2014 -0400 Fix ksu crash in cases where it obtains the TGT In order to allow ksu to use any locally-present service key for verifying creds, the previous change to ksu switched from using a retrieved or obtained TGT to fetch creds for the local "host" service, and then passing those creds to krb5_verify_init_creds(), to passing the retrieved TGT directly to krb5_verify_init_creds(). It did not take care to retrieve the TGT from the temporary ccache if it had obtained them, and in those cases it would attempt to verify NULL creds. diff --git a/src/clients/ksu/krb_auth_su.c b/src/clients/ksu/krb_auth_su.c index dd0a127..bd37c9c 100644 --- a/src/clients/ksu/krb_auth_su.c +++ b/src/clients/ksu/krb_auth_su.c @@ -122,6 +122,17 @@ krb5_boolean krb5_auth_check(context, client_pname, hostname, options, return FALSE; } + retval = krb5_cc_retrieve_cred(context, cc, + KRB5_TC_MATCH_SRV_NAMEONLY | + KRB5_TC_SUPPORTED_KTYPES, + &tgtq, &tgt); + + if (! retval) retval = krb5_check_exp(context, tgt.times); + + if (retval){ + com_err(prog_name, retval, _("while getting initial credentials")); + return (FALSE) ; + } #else plain_dump_principal (context, client); fprintf(stderr,