summaryrefslogtreecommitdiffstats
path: root/src/lib/krb5/rcache
diff options
context:
space:
mode:
authorTheodore Tso <tytso@mit.edu>1994-08-20 05:36:24 +0000
committerTheodore Tso <tytso@mit.edu>1994-08-20 05:36:24 +0000
commitc3cc0eff87038ed30e63c45dab99eead07079523 (patch)
tree9ded15c7306015aaea6a22fcc2e68ec138ccfc77 /src/lib/krb5/rcache
parenta4baf037f70e5daddd00952d04f4c9f11b607aff (diff)
downloadkrb5-c3cc0eff87038ed30e63c45dab99eead07079523.tar.gz
krb5-c3cc0eff87038ed30e63c45dab99eead07079523.tar.xz
krb5-c3cc0eff87038ed30e63c45dab99eead07079523.zip
Fix bug of trying to use freed memory
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@4202 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/rcache')
-rw-r--r--src/lib/krb5/rcache/ChangeLog6
-rw-r--r--src/lib/krb5/rcache/rc_dfl.c5
2 files changed, 10 insertions, 1 deletions
diff --git a/src/lib/krb5/rcache/ChangeLog b/src/lib/krb5/rcache/ChangeLog
index d51d51a08..47f3f1e00 100644
--- a/src/lib/krb5/rcache/ChangeLog
+++ b/src/lib/krb5/rcache/ChangeLog
@@ -1,3 +1,9 @@
+Sat Aug 20 00:09:37 1994 Theodore Y. Ts'o (tytso at tsx-11)
+
+ * rc_dfl.c (krb5_rc_dfl_expunge): name (t->name) was getting freed
+ and we tried to use it. Clear t->name to stop it from being
+ freed, and then free it later.
+
Mon Jun 20 19:37:13 1994 Theodore Y. Ts'o (tytso at tsx-11)
* rc_base.h: #include <krb5/osconf.h> so that build works using imake.
diff --git a/src/lib/krb5/rcache/rc_dfl.c b/src/lib/krb5/rcache/rc_dfl.c
index 19586ba3a..b9ebb9147 100644
--- a/src/lib/krb5/rcache/rc_dfl.c
+++ b/src/lib/krb5/rcache/rc_dfl.c
@@ -538,13 +538,16 @@ krb5_rcache id;
#else
struct authlist *q;
- char *name = t->name;
+ char *name;
krb5_error_code retval;
krb5_rcache tmp;
krb5_deltat lifespan = t->lifespan; /* save original lifespan */
+ name = t->name;
+ t->name = 0; /* Clear name so it isn't freed */
(void) krb5_rc_dfl_close_no_free(id);
retval = krb5_rc_dfl_resolve(id, name);
+ free(name);
if (retval)
return retval;
retval = krb5_rc_dfl_recover(id);