diff options
author | Günther Deschner <gd@samba.org> | 2007-01-04 23:41:16 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:16:55 -0500 |
commit | f3a85fb152c0cb07ae1c096f06488f88c4c9d741 (patch) | |
tree | 49bf616cc67d4af2ff5448e7fc0e15bf659415af /source3 | |
parent | b1fed47440717a68368430f4571134d2102afb66 (diff) | |
download | samba-f3a85fb152c0cb07ae1c096f06488f88c4c9d741.tar.gz samba-f3a85fb152c0cb07ae1c096f06488f88c4c9d741.tar.bz2 samba-f3a85fb152c0cb07ae1c096f06488f88c4c9d741.zip |
r20536: In the offline PAM session close case the attempt to delete a
non-existing krb5 credential cache should not generate an error.
Guenther
(This used to be commit 11c6f573af5c1d3387e60f3fc44b00e28cd87813)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/libads/krb5_errs.c | 2 | ||||
-rw-r--r-- | source3/nsswitch/winbindd_cred_cache.c | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/source3/libads/krb5_errs.c b/source3/libads/krb5_errs.c index a4a3bd3adb..89cfc2d143 100644 --- a/source3/libads/krb5_errs.c +++ b/source3/libads/krb5_errs.c @@ -56,6 +56,8 @@ static const struct { #if defined(KRB5KRB_ERR_RESPONSE_TOO_BIG) {KRB5KRB_ERR_RESPONSE_TOO_BIG, NT_STATUS_PROTOCOL_UNREACHABLE}, #endif + {KRB5_CC_NOTFOUND, NT_STATUS_NO_SUCH_FILE}, + {KRB5_FCC_NOFILE, NT_STATUS_NO_SUCH_FILE}, {KRB5KDC_ERR_NONE, NT_STATUS_OK}, {0, NT_STATUS_OK} }; diff --git a/source3/nsswitch/winbindd_cred_cache.c b/source3/nsswitch/winbindd_cred_cache.c index 5772be15a8..def4c6197c 100644 --- a/source3/nsswitch/winbindd_cred_cache.c +++ b/source3/nsswitch/winbindd_cred_cache.c @@ -419,7 +419,11 @@ NTSTATUS remove_ccache(const char *username) #ifdef HAVE_KRB5 ret = ads_kdestroy(entry->ccname); - if (ret) { + + /* we ignore the error when there has been no credential cache */ + if (ret == KRB5_FCC_NOFILE) { + ret = 0; + } else if (ret) { DEBUG(0,("remove_ccache: failed to destroy user krb5 ccache %s with: %s\n", entry->ccname, error_message(ret))); } else { |