diff options
author | Seemant Choudhary <seemant@soha.io> | 2016-08-24 12:20:01 -0400 |
---|---|---|
committer | Tom Yu <tlyu@mit.edu> | 2016-09-02 18:30:32 -0400 |
commit | 2cd4ec15e28f669e650c71a52c2a755a982820e2 (patch) | |
tree | c9ae18a66b66b87b5d2dc902a85ee62a05a0c810 | |
parent | 95bd79c14715d69399338dfff8acedd6bdf6e93e (diff) | |
download | krb5-2cd4ec15e28f669e650c71a52c2a755a982820e2.zip krb5-2cd4ec15e28f669e650c71a52c2a755a982820e2.tar.gz krb5-2cd4ec15e28f669e650c71a52c2a755a982820e2.tar.bz2 |
Fix leak in krb5_server_decrypt_ticket_keytab()
When we skip a keytab entry because it is of the wrong enctype, free
it before continuing.
(cherry picked from commit 9984c2343c96f3aaaf8a8d6dfc1b6de1eae533c2)
ticket: 8482
version_fixed: 1.13.7
-rw-r--r-- | src/lib/krb5/krb/srv_dec_tkt.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/krb5/krb/srv_dec_tkt.c b/src/lib/krb5/krb/srv_dec_tkt.c index 708a25f..6c92252 100644 --- a/src/lib/krb5/krb/srv_dec_tkt.c +++ b/src/lib/krb5/krb/srv_dec_tkt.c @@ -99,8 +99,10 @@ krb5_server_decrypt_ticket_keytab(krb5_context context, retval = KRB5_KT_NOTFOUND; while ((code = krb5_kt_next_entry(context, keytab, &ktent, &cursor)) == 0) { - if (ktent.key.enctype != ticket->enc_part.enctype) + if (ktent.key.enctype != ticket->enc_part.enctype) { + (void) krb5_free_keytab_entry_contents(context, &ktent); continue; + } retval = decrypt_ticket_keyblock(context, &ktent.key, ticket); if (retval == 0) { |