sched: don't allow setuid to succeed if the user does not have rt bandwidth
authorDhaval Giani <dhaval@linux.vnet.ibm.com>
Fri, 27 Feb 2009 09:43:54 +0000 (14:43 +0530)
committerIngo Molnar <mingo@elte.hu>
Fri, 27 Feb 2009 10:11:53 +0000 (11:11 +0100)
commit54e991242850edc8c53f71fa5aa3ba7a93ce38f5
tree7f136214aab690a8ee4a294ca9c1a7e01de0dc49
parentcac64d00c256e65776d575e82aaf540632b66178
sched: don't allow setuid to succeed if the user does not have rt bandwidth

Impact: fix hung task with certain (non-default) rt-limit settings

Corey Hickey reported that on using setuid to change the uid of a
rt process, the process would be unkillable and not be running.
This is because there was no rt runtime for that user group. Add
in a check to see if a user can attach an rt task to its task group.
On failure, return EINVAL, which is also returned in
CONFIG_CGROUP_SCHED.

Reported-by: Corey Hickey <bugfood-ml@fatooh.org>
Signed-off-by: Dhaval Giani <dhaval@linux.vnet.ibm.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
include/linux/sched.h
kernel/sched.c
kernel/sys.c
kernel/user.c