]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Fix leak in krb5_server_decrypt_ticket_keytab()
authorSeemant Choudhary <seemant@soha.io>
Wed, 24 Aug 2016 16:20:01 +0000 (12:20 -0400)
committerTom Yu <tlyu@mit.edu>
Fri, 2 Sep 2016 18:49:38 +0000 (14:49 -0400)
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.14.4

src/lib/krb5/krb/srv_dec_tkt.c

index 708a25fb25a9af1db0804e948c3011ab1a07ce51..6c922523eed8fb8ceb25d221dd26bea23a0b0f48 100644 (file)
@@ -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) {