aboutsummaryrefslogtreecommitdiff
path: root/src/clients/ksu/authorization.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/clients/ksu/authorization.c')
-rw-r--r--src/clients/ksu/authorization.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/clients/ksu/authorization.c b/src/clients/ksu/authorization.c
index a2e5409..d184993 100644
--- a/src/clients/ksu/authorization.c
+++ b/src/clients/ksu/authorization.c
@@ -40,12 +40,10 @@ krb5_boolean fowner(fp, uid)
* the user himself, or by root. Otherwise, don't grant access.
*/
if (fstat(fileno(fp), &sbuf)) {
- fclose(fp);
return(FALSE);
}
if ((sbuf.st_uid != uid) && sbuf.st_uid) {
- fclose(fp);
return(FALSE);
}
@@ -102,8 +100,10 @@ krb5_error_code krb5_authorization(context, principal, luser,
if (!k5login_flag){
if ((login_fp = fopen(k5login_path, "r")) == NULL)
return 0;
- if ( fowner(login_fp, pwd->pw_uid) == FALSE)
+ if ( fowner(login_fp, pwd->pw_uid) == FALSE) {
+ fclose(login_fp);
return 0;
+ }
}
if (!k5users_flag){
@@ -111,6 +111,7 @@ krb5_error_code krb5_authorization(context, principal, luser,
return 0;
}
if ( fowner(users_fp, pwd->pw_uid) == FALSE){
+ fclose(users_fp);
return 0;
}
}