Patch 2.6.32.28 to 2.6.32.32
/kernel/sys.c
blob:e9512b185801314850e6ace469d02248b63ad826 -> blob:440ca69d202df389a2d7debd3954c87165326d09
--- kernel/sys.c
+++ kernel/sys.c
@@ -567,6 +567,11 @@ static int set_user(struct cred *new)
if (!new_user)
return -EAGAIN;
+ if (!task_can_switch_user(new_user, current)) {
+ free_uid(new_user);
+ return -EINVAL;
+ }
+
if (atomic_read(&new_user->processes) >=
current->signal->rlim[RLIMIT_NPROC].rlim_cur &&
new_user != INIT_USER) {