aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanilo Almeida <dalmeida@mit.edu>2000-03-16 00:44:18 +0000
committerDanilo Almeida <dalmeida@mit.edu>2000-03-16 00:44:18 +0000
commit77f6ac1618d819b4039c8f05d6acec86449726b7 (patch)
treeccec36ca90f1eff4a0c127306e6939f8133b6af1
parent71f53f67f8df024160b336c093e5e6cb8b2e3895 (diff)
downloadkrb5-77f6ac1618d819b4039c8f05d6acec86449726b7.zip
krb5-77f6ac1618d819b4039c8f05d6acec86449726b7.tar.gz
krb5-77f6ac1618d819b4039c8f05d6acec86449726b7.tar.bz2
* stdcc.c (krb5_stdcc_destroy): Do not mask KRB5_FCC_NOFILE error
on destroy. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@12117 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r--src/lib/krb5/ccache/ccapi/ChangeLog5
-rw-r--r--src/lib/krb5/ccache/ccapi/stdcc.c16
2 files changed, 15 insertions, 6 deletions
diff --git a/src/lib/krb5/ccache/ccapi/ChangeLog b/src/lib/krb5/ccache/ccapi/ChangeLog
index a97d97f..e4dac98 100644
--- a/src/lib/krb5/ccache/ccapi/ChangeLog
+++ b/src/lib/krb5/ccache/ccapi/ChangeLog
@@ -1,3 +1,8 @@
+2000-03-15 Danilo Almeida <dalmeida@mit.edu>
+
+ * stdcc.c (krb5_stdcc_destroy): Do not mask KRB5_FCC_NOFILE error
+ on destroy.
+
2000-02-10 Miro Jurisic <meeroh@mit.edu>
* stdcc_util.c: Fixed lxs' fix
diff --git a/src/lib/krb5/ccache/ccapi/stdcc.c b/src/lib/krb5/ccache/ccapi/stdcc.c
index ed233b0..a17cd02 100644
--- a/src/lib/krb5/ccache/ccapi/stdcc.c
+++ b/src/lib/krb5/ccache/ccapi/stdcc.c
@@ -620,13 +620,11 @@ krb5_stdcc_destroy (krb5_context context, krb5_ccache id)
int err;
krb5_error_code retval;
stdccCacheDataPtr ccapi_data = id->data;
-
+
if ((retval = stdcc_setup(context, ccapi_data))) {
- if (retval == KRB5_FCC_NOFILE)
- return 0;
return retval;
}
-
+
/* free memory associated with the krb5_ccache */
if (ccapi_data) {
if (ccapi_data->cache_name)
@@ -634,14 +632,20 @@ krb5_stdcc_destroy (krb5_context context, krb5_ccache id)
if (ccapi_data->NamedCache) {
/* destroy the named cache */
err = cc_destroy(gCntrlBlock, &ccapi_data->NamedCache);
+ retval = cc_err_xlate(err);
cache_changed();
}
free(ccapi_data);
id->data = NULL;
}
free(id);
-
- return cc_err_xlate(err);
+
+ /* If the cache does not exist when we tried to destroy it,
+ that's fine. That means someone else destryoed it since
+ we resolved it. */
+ if (retval == KRB5_FCC_NOFILE)
+ return 0;
+ return retval;
}
/*