Blob Blame Raw
From cae3bf6af22855adc8dd7b270e11207f0a33c385 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pavel=20B=C5=99ezina?= <pbrezina@redhat.com>
Date: Wed, 30 Jan 2013 13:45:27 +0100
Subject: [PATCH] krb: recreate ccache if it was deleted

https://fedorahosted.org/sssd/ticket/1512

If directory where a ccache file was stored was missing and user
was still logged in, we erroneously considered the ccache file
still active. Thus the ccache file was not recreated and user was
unable to login.
---
 src/providers/krb5/krb5_utils.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/providers/krb5/krb5_utils.c b/src/providers/krb5/krb5_utils.c
index b770714be030076203b6578f90ef726226cb72f8..7b56be52497ae66fa536b76ca0561ec3cc3208ce 100644
--- a/src/providers/krb5/krb5_utils.c
+++ b/src/providers/krb5/krb5_utils.c
@@ -770,8 +770,15 @@ cc_residual_is_used(uid_t uid, const char *ccname,
 
     ret = lstat(ccname, &stat_buf);
 
-    if (ret == -1 && errno != ENOENT) {
+    if (ret == -1) {
         ret = errno;
+        if (ret == ENOENT) {
+            DEBUG(SSSDBG_FUNC_DATA, ("Cache file [%s] does not exists, "
+                                     "it will be recreated\n", ccname));
+            *result = false;
+            return EOK;
+        }
+
         DEBUG(SSSDBG_OP_FAILURE,
               ("stat failed [%d][%s].\n", ret, strerror(ret)));
         return ret;
-- 
1.7.11.7