aboutsummaryrefslogtreecommitdiffstats
path: root/security
diff options
context:
space:
mode:
Diffstat (limited to 'security')
-rw-r--r--security/capability.c3
-rw-r--r--security/security.c5
-rw-r--r--security/selinux/hooks.c7
3 files changed, 9 insertions, 6 deletions
diff --git a/security/capability.c b/security/capability.c
index 8168e3ecd5bf..7e468263f2de 100644
--- a/security/capability.c
+++ b/security/capability.c
@@ -412,7 +412,8 @@ static int cap_task_getioprio(struct task_struct *p)
412 return 0; 412 return 0;
413} 413}
414 414
415static int cap_task_setrlimit(unsigned int resource, struct rlimit *new_rlim) 415static int cap_task_setrlimit(struct task_struct *p, unsigned int resource,
416 struct rlimit *new_rlim)
416{ 417{
417 return 0; 418 return 0;
418} 419}
diff --git a/security/security.c b/security/security.c
index 351942a4ca0e..aa510609a955 100644
--- a/security/security.c
+++ b/security/security.c
@@ -769,9 +769,10 @@ int security_task_getioprio(struct task_struct *p)
769 return security_ops->task_getioprio(p); 769 return security_ops->task_getioprio(p);
770} 770}
771 771
772int security_task_setrlimit(unsigned int resource, struct rlimit *new_rlim) 772int security_task_setrlimit(struct task_struct *p, unsigned int resource,
773 struct rlimit *new_rlim)
773{ 774{
774 return security_ops->task_setrlimit(resource, new_rlim); 775 return security_ops->task_setrlimit(p, resource, new_rlim);
775} 776}
776 777
777int security_task_setscheduler(struct task_struct *p, 778int security_task_setscheduler(struct task_struct *p,
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 5c9f25ba1c95..e3ce6b4127cc 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -3371,16 +3371,17 @@ static int selinux_task_getioprio(struct task_struct *p)
3371 return current_has_perm(p, PROCESS__GETSCHED); 3371 return current_has_perm(p, PROCESS__GETSCHED);
3372} 3372}
3373 3373
3374static int selinux_task_setrlimit(unsigned int resource, struct rlimit *new_rlim) 3374static int selinux_task_setrlimit(struct task_struct *p, unsigned int resource,
3375 struct rlimit *new_rlim)
3375{ 3376{
3376 struct rlimit *old_rlim = current->signal->rlim + resource; 3377 struct rlimit *old_rlim = p->signal->rlim + resource;
3377 3378
3378 /* Control the ability to change the hard limit (whether 3379 /* Control the ability to change the hard limit (whether
3379 lowering or raising it), so that the hard limit can 3380 lowering or raising it), so that the hard limit can
3380 later be used as a safe reset point for the soft limit 3381 later be used as a safe reset point for the soft limit
3381 upon context transitions. See selinux_bprm_committing_creds. */ 3382 upon context transitions. See selinux_bprm_committing_creds. */
3382 if (old_rlim->rlim_max != new_rlim->rlim_max) 3383 if (old_rlim->rlim_max != new_rlim->rlim_max)
3383 return current_has_perm(current, PROCESS__SETRLIMIT); 3384 return current_has_perm(p, PROCESS__SETRLIMIT);
3384 3385
3385 return 0; 3386 return 0;
3386} 3387}