From: Greg Hudson Date: Tue, 13 Dec 2011 00:53:56 +0000 (+0000) Subject: krb5_server_decrypt_ticket_keytab wrongly succeeds X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=b531f40581f6b871c08643a0e9ef11f632de0363;p=krb5.git krb5_server_decrypt_ticket_keytab wrongly succeeds If krb5_server_decrypt_ticket_keytab doesn't find a key of the appropriate enctype in an iterable keytab, it returns 0 (without decrypting the ticket) due to a misplaced initialization of retval. This bug causes kinit -k to claim "keytab entry valid" when it shouldn't. Reported by mark@mproehl.net. ticket: 7051 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25584 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/lib/krb5/krb/srv_dec_tkt.c b/src/lib/krb5/krb/srv_dec_tkt.c index 645bc7552..094758ce2 100644 --- a/src/lib/krb5/krb/srv_dec_tkt.c +++ b/src/lib/krb5/krb/srv_dec_tkt.c @@ -79,8 +79,6 @@ krb5_server_decrypt_ticket_keytab(krb5_context context, krb5_error_code retval; krb5_keytab_entry ktent; - retval = KRB5_KT_NOTFOUND; - if (keytab->ops->start_seq_get == NULL) { retval = krb5_kt_get_entry(context, keytab, ticket->server, @@ -99,6 +97,7 @@ krb5_server_decrypt_ticket_keytab(krb5_context context, if (retval != 0) goto map_error; + retval = KRB5_KT_NOTFOUND; while ((code = krb5_kt_next_entry(context, keytab, &ktent, &cursor)) == 0) { if (ktent.key.enctype != ticket->enc_part.enctype)