]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
capabilities: do not special case exec of init
authorEric Paris <eparis@redhat.com>
Fri, 1 Apr 2011 21:08:28 +0000 (17:08 -0400)
committerJames Morris <jmorris@namei.org>
Mon, 4 Apr 2011 00:31:06 +0000 (10:31 +1000)
When the global init task is exec'd we have special case logic to make sure
the pE is not reduced.  There is no reason for this.  If init wants to drop
it's pE is should be allowed to do so.  Remove this special logic.

Signed-off-by: Eric Paris <eparis@redhat.com>
Acked-by: Serge Hallyn <serge@hallyn.com>
Acked-by: David Howells <dhowells@redhat.com>
Acked-by: Andrew G. Morgan <morgan@kernel.org>
Signed-off-by: James Morris <jmorris@namei.org>
security/commoncap.c

index f20e984ccfb459c141222f51791f4b5a3fcab6a9..a93b3b73307991c69738bc0dab712e56330ba932 100644 (file)
@@ -529,15 +529,10 @@ skip:
        new->suid = new->fsuid = new->euid;
        new->sgid = new->fsgid = new->egid;
 
-       /* For init, we want to retain the capabilities set in the initial
-        * task.  Thus we skip the usual capability rules
-        */
-       if (!is_global_init(current)) {
-               if (effective)
-                       new->cap_effective = new->cap_permitted;
-               else
-                       cap_clear(new->cap_effective);
-       }
+       if (effective)
+               new->cap_effective = new->cap_permitted;
+       else
+               cap_clear(new->cap_effective);
        bprm->cap_effective = effective;
 
        /*