]> 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)
committerGreg Hudson <ghudson@mit.edu>
Thu, 25 Aug 2016 14:35:43 +0000 (10:35 -0400)
When we skip a keytab entry because it is of the wrong enctype, free
it before continuing.

ticket: 8482
target_version: 1.14-next
target_version: 1.13-next
tags: pullup

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) {