summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib/krb5/ccache/ChangeLog6
-rw-r--r--src/lib/krb5/ccache/cc_file.c4
2 files changed, 10 insertions, 0 deletions
diff --git a/src/lib/krb5/ccache/ChangeLog b/src/lib/krb5/ccache/ChangeLog
index 05e041c8b..d19ccb725 100644
--- a/src/lib/krb5/ccache/ChangeLog
+++ b/src/lib/krb5/ccache/ChangeLog
@@ -1,3 +1,9 @@
+2004-12-25 Ezra Peisach <epeisach@mit.edu>
+
+ * cc_file.c (krb5_fcc_close): Free the cache id.
+ (dereference): When removing fcc_set entry from list, free the
+ pointer as well.
+
2004-12-16 Jeffrey Altman <jaltman@mit.edu>
* cc_mslsa.c:
Temporarily deactivate support for KerbSubmitTicketMessage
diff --git a/src/lib/krb5/ccache/cc_file.c b/src/lib/krb5/ccache/cc_file.c
index 14e59a146..1eadab688 100644
--- a/src/lib/krb5/ccache/cc_file.c
+++ b/src/lib/krb5/ccache/cc_file.c
@@ -1486,8 +1486,11 @@ static krb5_error_code dereference(krb5_context context, krb5_fcc_data *data)
assert(*fccsp != NULL);
(*fccsp)->refcount--;
if ((*fccsp)->refcount == 0) {
+ struct fcc_set *temp;
data = (*fccsp)->data;
+ temp = *fccsp;
*fccsp = (*fccsp)->next;
+ free(temp);
k5_mutex_unlock(&krb5int_cc_file_mutex);
free(data->filename);
zap(data->buf, sizeof(data->buf));
@@ -1517,6 +1520,7 @@ static krb5_error_code KRB5_CALLCONV
krb5_fcc_close(krb5_context context, krb5_ccache id)
{
dereference(context, (krb5_fcc_data *) id->data);
+ krb5_xfree(id);
return KRB5_OK;
}