mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
security: make security_file_set_fowner, f_setown and __f_setown void return
security_file_set_fowner always returns 0, so make it f_setown and __f_setown void return functions and fix up the error handling in the callers. Cc: [email protected] Signed-off-by: Jeff Layton <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]>
This commit is contained in:
parent
1c994a0909
commit
e0b93eddfe
12 changed files with 26 additions and 42 deletions
21
fs/fcntl.c
21
fs/fcntl.c
|
|
@ -98,26 +98,19 @@ static void f_modown(struct file *filp, struct pid *pid, enum pid_type type,
|
|||
write_unlock_irq(&filp->f_owner.lock);
|
||||
}
|
||||
|
||||
int __f_setown(struct file *filp, struct pid *pid, enum pid_type type,
|
||||
void __f_setown(struct file *filp, struct pid *pid, enum pid_type type,
|
||||
int force)
|
||||
{
|
||||
int err;
|
||||
|
||||
err = security_file_set_fowner(filp);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
security_file_set_fowner(filp);
|
||||
f_modown(filp, pid, type, force);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(__f_setown);
|
||||
|
||||
int f_setown(struct file *filp, unsigned long arg, int force)
|
||||
void f_setown(struct file *filp, unsigned long arg, int force)
|
||||
{
|
||||
enum pid_type type;
|
||||
struct pid *pid;
|
||||
int who = arg;
|
||||
int result;
|
||||
type = PIDTYPE_PID;
|
||||
if (who < 0) {
|
||||
type = PIDTYPE_PGID;
|
||||
|
|
@ -125,9 +118,8 @@ int f_setown(struct file *filp, unsigned long arg, int force)
|
|||
}
|
||||
rcu_read_lock();
|
||||
pid = find_vpid(who);
|
||||
result = __f_setown(filp, pid, type, force);
|
||||
__f_setown(filp, pid, type, force);
|
||||
rcu_read_unlock();
|
||||
return result;
|
||||
}
|
||||
EXPORT_SYMBOL(f_setown);
|
||||
|
||||
|
|
@ -181,7 +173,7 @@ static int f_setown_ex(struct file *filp, unsigned long arg)
|
|||
if (owner.pid && !pid)
|
||||
ret = -ESRCH;
|
||||
else
|
||||
ret = __f_setown(filp, pid, type, 1);
|
||||
__f_setown(filp, pid, type, 1);
|
||||
rcu_read_unlock();
|
||||
|
||||
return ret;
|
||||
|
|
@ -302,7 +294,8 @@ static long do_fcntl(int fd, unsigned int cmd, unsigned long arg,
|
|||
force_successful_syscall_return();
|
||||
break;
|
||||
case F_SETOWN:
|
||||
err = f_setown(filp, arg, 1);
|
||||
f_setown(filp, arg, 1);
|
||||
err = 0;
|
||||
break;
|
||||
case F_GETOWN_EX:
|
||||
err = f_getown_ex(filp, arg);
|
||||
|
|
|
|||
Loading…
Reference in a new issue