[SSSD] [PATCH] Fix for #344

Sumit Bose sbose at redhat.com
Thu Dec 17 20:44:39 UTC 2009


Hi,

this patch should fix #344

Currently we recreate non existing ccache files which may results to
problems if the user is still logged in. This patch ignores non existing
ccache files and checks if there are still user processes running.

bye,
Sumit
-------------- next part --------------
From fbbcbb8896ed065d3eecb514b963a620ed4a0d38 Mon Sep 17 00:00:00 2001
From: Sumit Bose <sbose at redhat.com>
Date: Thu, 17 Dec 2009 21:28:47 +0100
Subject: [PATCH] Fix for #344

Do not handle a missing ccache file as inactive by default, check if
there are still active processes of the user.
---
 server/providers/krb5/krb5_auth.c |   24 +++++++++++-------------
 1 files changed, 11 insertions(+), 13 deletions(-)

diff --git a/server/providers/krb5/krb5_auth.c b/server/providers/krb5/krb5_auth.c
index b330ae0..f330e1c 100644
--- a/server/providers/krb5/krb5_auth.c
+++ b/server/providers/krb5/krb5_auth.c
@@ -144,20 +144,18 @@ static errno_t check_if_ccache_file_is_used(uid_t uid, const char *ccname,
     if (ret == -1 && errno != ENOENT) {
         DEBUG(1, ("stat failed [%d][%s].\n", errno, strerror(errno)));
         return errno;
-    } else if (ret == -1 &&  errno == ENOENT) {
-        return EOK;
-    }
-
-    if (stat_buf.st_uid != uid) {
-        DEBUG(1, ("Cache file [%s] exists, but is owned by [%d] instead of "
-                  "[%d].\n", filename, stat_buf.st_uid, uid));
-        return EINVAL;
-    }
+    } else if (ret == EOK) {
+        if (stat_buf.st_uid != uid) {
+            DEBUG(1, ("Cache file [%s] exists, but is owned by [%d] instead of "
+                      "[%d].\n", filename, stat_buf.st_uid, uid));
+            return EINVAL;
+        }
 
-    if (!S_ISREG(stat_buf.st_mode)) {
-        DEBUG(1, ("Cache file [%s] exists, but is not a regular file.\n",
-                  filename));
-        return EINVAL;
+        if (!S_ISREG(stat_buf.st_mode)) {
+            DEBUG(1, ("Cache file [%s] exists, but is not a regular file.\n",
+                      filename));
+            return EINVAL;
+        }
     }
 
     ret = check_if_uid_is_active(uid, &active);
-- 
1.6.5.2



More information about the sssd-devel mailing list