diff options
| author | Theodore Tso <tytso@mit.edu> | 1995-12-01 22:15:32 +0000 |
|---|---|---|
| committer | Theodore Tso <tytso@mit.edu> | 1995-12-01 22:15:32 +0000 |
| commit | d05a236c1da221eebb692c5705e5dd89a8a22bfa (patch) | |
| tree | f853f00c438afe71ec88df1ce75617b8c6ae7cf6 | |
| parent | be2cb85562504ae7d906ed8325c93ad68e804b6c (diff) | |
| download | krb5-d05a236c1da221eebb692c5705e5dd89a8a22bfa.tar.gz krb5-d05a236c1da221eebb692c5705e5dd89a8a22bfa.tar.xz krb5-d05a236c1da221eebb692c5705e5dd89a8a22bfa.zip | |
In case of permission problems, don't unlink the old replay cache;
make it a hard (repeatable) error. This also reduces the chance we
accidentally delete valuable data.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@7150 dc483132-0cff-0310-8789-dd5450dbe970
| -rw-r--r-- | src/lib/krb5/rcache/ChangeLog | 7 | ||||
| -rw-r--r-- | src/lib/krb5/rcache/rc_io.c | 3 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/lib/krb5/rcache/ChangeLog b/src/lib/krb5/rcache/ChangeLog index 0001ac9b9..a4201c083 100644 --- a/src/lib/krb5/rcache/ChangeLog +++ b/src/lib/krb5/rcache/ChangeLog @@ -1,3 +1,10 @@ +Fri Dec 1 17:07:24 1995 Theodore Y. Ts'o <tytso@dcl> + + * rc_io.c (krb5_rc_io_creat): In case of permission problems, + don't unlink the old replay cache; make it a hard + (repeatable) error. This also reduces the chance we + accidentally delete valuable data. + Mon Nov 27 14:52:23 1995 Tom Yu <tlyu@dragons-lair.MIT.EDU> * rc_dfl.c (krb5_rc_dfl_init): default lifespan to diff --git a/src/lib/krb5/rcache/rc_io.c b/src/lib/krb5/rcache/rc_io.c index 96cfe2bb5..fa0bdc0ae 100644 --- a/src/lib/krb5/rcache/rc_io.c +++ b/src/lib/krb5/rcache/rc_io.c @@ -130,7 +130,7 @@ krb5_error_code krb5_rc_io_creat (context, d, fn) case EACCES: case EROFS: case EEXIST: - retval = KRB5_RC_IO_PERM; goto fail; + retval = KRB5_RC_IO_PERM; goto no_unlink; default: retval = KRB5_RC_IO_UNKNOWN; goto fail; @@ -141,6 +141,7 @@ krb5_error_code krb5_rc_io_creat (context, d, fn) { fail: (void) unlink(d->fn); + no_unlink: FREE(d->fn); d->fn = NULL; (void) close(d->fd); |
