Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=97829955ad291acec1d8b94e9911b3ceb1118bb1
Commit:     97829955ad291acec1d8b94e9911b3ceb1118bb1
Parent:     3b7391de67da515c91f48aa371de77cb6cc5c07e
Author:     Serge E. Hallyn <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 4 22:29:47 2008 -0800
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Tue Feb 5 09:44:20 2008 -0800

    oom_kill: remove uid==0 checks
    
    Root processes are considered more important when out of memory and killing
    proceses.  The check for CAP_SYS_ADMIN was augmented with a check for
    uid==0 or euid==0.
    
    There are several possible ways to look at this:
    
        1. uid comparisons are unnecessary, trust CAP_SYS_ADMIN
           alone.  However CAP_SYS_RESOURCE is the one that really
           means "give me extra resources" so allow for that as
           well.
        2. Any privileged code should be protected, but uid is not
           an indication of privilege.  So we should check whether
           any capabilities are raised.
        3. uid==0 makes processes on the host as well as in containers
           more important, so we should keep the existing checks.
        4. uid==0 makes processes only on the host more important,
           even without any capabilities.  So we should be keeping
           the (uid==0||euid==0) check but only when
           userns==&init_user_ns.
    
    I'm following number 1 here.
    
    Signed-off-by: Serge Hallyn <[EMAIL PROTECTED]>
    Cc: Andrew Morgan <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 mm/oom_kill.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/mm/oom_kill.c b/mm/oom_kill.c
index 320d74e..c1850bf 100644
--- a/mm/oom_kill.c
+++ b/mm/oom_kill.c
@@ -125,7 +125,7 @@ unsigned long badness(struct task_struct *p, unsigned long 
uptime)
         * Superuser processes are usually more important, so we make it
         * less likely that we kill those.
         */
-       if (__capable(p, CAP_SYS_ADMIN) || p->uid == 0 || p->euid == 0)
+       if (__capable(p, CAP_SYS_ADMIN) || __capable(p, CAP_SYS_RESOURCE))
                points /= 4;
 
        /*
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to