summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorSumit Bose <sbose@redhat.com>2009-12-17 21:28:47 +0100
committerStephen Gallagher <sgallagh@redhat.com>2009-12-18 09:43:27 -0500
commit172ed348f92121f6c17433a65815d5f5cc81d626 (patch)
tree58c1aea4086cac0d2bdc3bdad99ed71666f9de5e /server
parent3de9e4ec7a182b1fcaa6d0e2486d21fab3a7cbf3 (diff)
downloadsssd-172ed348f92121f6c17433a65815d5f5cc81d626.tar.gz
sssd-172ed348f92121f6c17433a65815d5f5cc81d626.tar.xz
sssd-172ed348f92121f6c17433a65815d5f5cc81d626.zip
Fix for #344
Do not handle a missing ccache file as inactive by default, check if there are still active processes of the user.
Diffstat (limited to 'server')
-rw-r--r--server/providers/krb5/krb5_auth.c24
1 files changed, 11 insertions, 13 deletions
diff --git a/server/providers/krb5/krb5_auth.c b/server/providers/krb5/krb5_auth.c
index 6e63c30a8..71f4b919a 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);