|
@@ -1199,8 +1199,8 @@ static struct task_struct *copy_process(unsigned long clone_flags,
|
|
retval = -EAGAIN;
|
|
retval = -EAGAIN;
|
|
if (atomic_read(&p->real_cred->user->processes) >=
|
|
if (atomic_read(&p->real_cred->user->processes) >=
|
|
task_rlimit(p, RLIMIT_NPROC)) {
|
|
task_rlimit(p, RLIMIT_NPROC)) {
|
|
- if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE) &&
|
|
|
|
- p->real_cred->user != INIT_USER)
|
|
|
|
|
|
+ if (p->real_cred->user != INIT_USER &&
|
|
|
|
+ !capable(CAP_SYS_RESOURCE) && !capable(CAP_SYS_ADMIN))
|
|
goto bad_fork_free;
|
|
goto bad_fork_free;
|
|
}
|
|
}
|
|
current->flags &= ~PF_NPROC_EXCEEDED;
|
|
current->flags &= ~PF_NPROC_EXCEEDED;
|