[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4754D76B.8080406@ak.jp.nec.com>
Date: Tue, 04 Dec 2007 13:28:27 +0900
From: KaiGai Kohei <kaigai@...jp.nec.com>
To: "Serge E. Hallyn" <serue@...ibm.com>
CC: lkml <linux-kernel@...r.kernel.org>,
linux-security-module@...r.kernel.org,
Andrew Morgan <morgan@...nel.org>,
Chris Wright <chrisw@...s-sol.org>,
Stephen Smalley <sds@...ch.ncsc.mil>,
jmorris@...gelap.austin.ibm.com, Andrew Morton <akpm@...l.org>
Subject: Re: [PATCH] capabilities: introduce per-process capability bounding
set (v10)
Serge,
Please tell me the meanings of the following condition.
> diff --git a/security/commoncap.c b/security/commoncap.c
> index 3a95990..cb71bb0 100644
> --- a/security/commoncap.c
> +++ b/security/commoncap.c
> @@ -133,6 +119,12 @@ int cap_capset_check (struct task_struct *target, kernel_cap_t *effective,
> /* incapable of using this inheritable set */
> return -EPERM;
> }
> + if (!!cap_issubset(*inheritable,
> + cap_combine(target->cap_inheritable,
> + current->cap_bset))) {
> + /* no new pI capabilities outside bounding set */
> + return -EPERM;
> + }
>
> /* verify restrictions on target's new Permitted set */
> if (!cap_issubset (*permitted,
It seems to me this condition requires the new inheritable capability
set must have a capability more than bounding set, at least.
What is the purpose of this checking?
In the initial state, any process have no inheritable capability set
and full bounding set. Thus, we cannot do capset() always.
Thanks,
--
OSS Platform Development Division, NEC
KaiGai Kohei <kaigai@...jp.nec.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists