From: Theodore Tso Date: Wed, 5 Oct 1994 02:10:35 +0000 (+0000) Subject: Fix to compare using new_entry instead of cur_entry. (Bug made in X-Git-Tag: krb5-1.0-beta4.3~4 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=338093e29d67e7a0d771d2910d6876da393341c7;p=krb5.git Fix to compare using new_entry instead of cur_entry. (Bug made in previous modification. ) Don't free cur_entry twice on errors. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@4455 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/lib/krb5/keytab/file/ChangeLog b/src/lib/krb5/keytab/file/ChangeLog index 2d60a6200..b6bb32ff6 100644 --- a/src/lib/krb5/keytab/file/ChangeLog +++ b/src/lib/krb5/keytab/file/ChangeLog @@ -1,5 +1,9 @@ Tue Oct 4 16:20:48 1994 Theodore Y. Ts'o (tytso@dcl) + * ktf_get_en.c (krb5_ktfile_get_entry): Fix to compare using + new_entry instead of cur_entry. (Bug made in modification + on Sep 28th). Don't free cur_entry twice on errors. + * ktfile.h * ktf_wreslv.c (krb5_ktfile_wresolve): * ktf_resolv.c (krb5_ktf_resolv): Resolv's first argument is now a diff --git a/src/lib/krb5/keytab/file/ktf_get_en.c b/src/lib/krb5/keytab/file/ktf_get_en.c index 2660a455f..a1c18fc10 100644 --- a/src/lib/krb5/keytab/file/ktf_get_en.c +++ b/src/lib/krb5/keytab/file/ktf_get_en.c @@ -54,11 +54,13 @@ OLDDECLARG(krb5_keytab_entry *, entry) * is exited with a break statement. */ cur_entry.principal = 0; + cur_entry.vno = 0; + cur_entry.key.contents = 0; while (TRUE) { if (kerror = krb5_ktfileint_read_entry(id, &new_entry)) break; - if (krb5_principal_compare(principal, cur_entry.principal)) { + if (krb5_principal_compare(principal, new_entry.principal)) { if (kvno == IGNORE_VNO) { if (cur_entry.vno < new_entry.vno) { krb5_kt_free_entry(&cur_entry); @@ -76,14 +78,11 @@ OLDDECLARG(krb5_keytab_entry *, entry) if (kerror == KRB5_KT_END) kerror = KRB5_KT_NOTFOUND; (void) krb5_ktfileint_close(id); - if (cur_entry.principal) - krb5_kt_free_entry(&cur_entry); + krb5_kt_free_entry(&cur_entry); return kerror; } if ((kerror = krb5_ktfileint_close(id)) != 0) { krb5_kt_free_entry(&cur_entry); - if (cur_entry.principal) - krb5_kt_free_entry(&cur_entry); return kerror; } *entry = cur_entry;