summaryrefslogtreecommitdiffstats
path: root/server/providers
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:46:25 -0500
commit6b94e84a0455ebb68506e70cf8ccc2a4656a2c91 (patch)
treeaf16ff432abe55af2b476465c57b85c46e2261c5 /server/providers
parentf4284f4791e5f84193d70d82eaa7465a26813731 (diff)
downloadsssd-6b94e84a0455ebb68506e70cf8ccc2a4656a2c91.tar.gz
sssd-6b94e84a0455ebb68506e70cf8ccc2a4656a2c91.tar.xz
sssd-6b94e84a0455ebb68506e70cf8ccc2a4656a2c91.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/providers')
-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);