diff options
Diffstat (limited to 'src/lib/krb5/ccache/stdio')
| -rw-r--r-- | src/lib/krb5/ccache/stdio/ChangeLog | 5 | ||||
| -rw-r--r-- | src/lib/krb5/ccache/stdio/scc_destry.c | 13 |
2 files changed, 14 insertions, 4 deletions
diff --git a/src/lib/krb5/ccache/stdio/ChangeLog b/src/lib/krb5/ccache/stdio/ChangeLog index 56d6d4fb3..b7976942b 100644 --- a/src/lib/krb5/ccache/stdio/ChangeLog +++ b/src/lib/krb5/ccache/stdio/ChangeLog @@ -1,3 +1,8 @@ +Thu Sep 22 21:38:09 1994 Theodore Y. Ts'o (tytso@dcl) + + * scc_destry.c (krb5_scc_destroy): Make sure memory associated + with the credentials cache is freed after it is destroyed. + Thu Aug 18 16:34:51 1994 Theodore Y. Ts'o (tytso at tsx-11) * scc_retrv.c (srvname_match): Fix bug in srvname_match where so diff --git a/src/lib/krb5/ccache/stdio/scc_destry.c b/src/lib/krb5/ccache/stdio/scc_destry.c index 1691692dd..4555c6f4b 100644 --- a/src/lib/krb5/ccache/stdio/scc_destry.c +++ b/src/lib/krb5/ccache/stdio/scc_destry.c @@ -61,7 +61,7 @@ krb5_error_code krb5_scc_destroy(id) (void) fclose(data->file); data->file = 0; } - return ret; + goto cleanup; } #if 0 @@ -77,7 +77,7 @@ krb5_error_code krb5_scc_destroy(id) (void) fclose(data->file); data->file = 0; } - return ret; + goto cleanup; } /* XXX This may not be legal XXX */ @@ -91,7 +91,7 @@ krb5_error_code krb5_scc_destroy(id) (void) fclose(data->file); data->file = 0; } - return ret; + goto cleanup; } if (fwrite(data->file, zeros, size % BUFSIZ) < 0) { @@ -100,7 +100,7 @@ krb5_error_code krb5_scc_destroy(id) (void) fclose(data->file); data->file = 0; } - return ret; + goto cleanup; } ret = fclose(data->file); @@ -110,5 +110,10 @@ krb5_error_code krb5_scc_destroy(id) if (ret) ret = krb5_scc_interpret(errno); + cleanup: + xfree(data->filename); + xfree(data); + xfree(id); + return ret; } |
