summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTheodore Tso <tytso@mit.edu>1994-10-05 02:10:35 +0000
committerTheodore Tso <tytso@mit.edu>1994-10-05 02:10:35 +0000
commit338093e29d67e7a0d771d2910d6876da393341c7 (patch)
tree21537fe1e4b8988f5a7c6655b6e1682fb598352c /src
parentfc6d4de7a3e745299416458503e6b34f57996eb0 (diff)
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
Diffstat (limited to 'src')
-rw-r--r--src/lib/krb5/keytab/file/ChangeLog4
-rw-r--r--src/lib/krb5/keytab/file/ktf_get_en.c9
2 files changed, 8 insertions, 5 deletions
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;