From 240a2c4ea6772323236d6cae5b4b29381af549ba Mon Sep 17 00:00:00 2001 From: Guillem Jover Date: Wed, 6 Dec 2006 20:32:24 -0800 Subject: [PATCH] --- yaml --- r: 42663 b: refs/heads/master c: 8fb4fc68ca391862b061b3d358a288ccf6abed39 h: refs/heads/master i: 42661: cfd24ec89371d8f57e5b2ddcb00866f5b58516e1 42659: 46e101e022b05e663a0c65ec4525a505d7abce4b 42655: 515a99de3c2a7ec1feb95f28e471fadc30110fd4 v: v3 --- [refs] | 2 +- trunk/fs/proc/base.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index de94b0bfbbd2..44eb9da5d99d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3b17979bda74493633364c2c263b452b7788e350 +refs/heads/master: 8fb4fc68ca391862b061b3d358a288ccf6abed39 diff --git a/trunk/fs/proc/base.c b/trunk/fs/proc/base.c index 795319c54f72..05ace70d051a 100644 --- a/trunk/fs/proc/base.c +++ b/trunk/fs/proc/base.c @@ -683,8 +683,6 @@ static ssize_t oom_adjust_write(struct file *file, const char __user *buf, char buffer[PROC_NUMBUF], *end; int oom_adjust; - if (!capable(CAP_SYS_RESOURCE)) - return -EPERM; memset(buffer, 0, sizeof(buffer)); if (count > sizeof(buffer) - 1) count = sizeof(buffer) - 1; @@ -699,6 +697,10 @@ static ssize_t oom_adjust_write(struct file *file, const char __user *buf, task = get_proc_task(file->f_dentry->d_inode); if (!task) return -ESRCH; + if (oom_adjust < task->oomkilladj && !capable(CAP_SYS_RESOURCE)) { + put_task_struct(task); + return -EACCES; + } task->oomkilladj = oom_adjust; put_task_struct(task); if (end - buffer == 0)