All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joshua Brindle <method@manicmethod.com>
To: Eric Paris <eparis@redhat.com>
Cc: Harry Ciao <qingtao.cao@windriver.com>,
	sds@tycho.nsa.gov, jmorris@namei.org, eparis@parisplace.org,
	selinux@tycho.nsa.gov
Subject: Re: [v0 PATCH 3/3] SELinux: Write class field in role_trans_write.
Date: Wed, 23 Mar 2011 14:59:20 -0400	[thread overview]
Message-ID: <4D8A4308.80400@manicmethod.com> (raw)
In-Reply-To: <1300891710.28871.10.camel@unknown001a4b0c2895>

Eric Paris wrote:
> On Wed, 2011-03-23 at 10:28 +0800, Harry Ciao wrote:
>> From: Harry Ciao<harrytaurus2002@hotmail.com>
>>
>> If kernel policy version is>= 25, then write the class field of the
>> role_trans structure into the binary reprensentation.
>>
>> Signed-off-by: Harry Ciao<qingtao.cao@windriver.com>
>
> Looking at this patch (and the first one) I really start to feel like
> putting the class after the newrole on disk.  It really would clean up
> the patches and the code to not insert the conditional in the middle of
> reading/writing and instead do it at the end....

He doesn't have to put it after new_role to clean up the conditional, just break 
the buffer in 2. range_write() does this in userspace, I'm not sure what the 
kernel interface looks like.

>
>> ---
>>   security/selinux/ss/policydb.c |   18 +++++++++++++-----
>>   1 files changed, 13 insertions(+), 5 deletions(-)
>>
>> diff --git a/security/selinux/ss/policydb.c b/security/selinux/ss/policydb.c
>> index b660f08..a6be0f5 100644
>> --- a/security/selinux/ss/policydb.c
>> +++ b/security/selinux/ss/policydb.c
>> @@ -2450,10 +2450,11 @@ static int cat_write(void *vkey, void *datum, void *ptr)
>>   	return 0;
>>   }
>>
>> -static int role_trans_write(struct role_trans *r, void *fp)
>> +static int role_trans_write(struct policydb *p, void *fp)
>>   {
>> +	struct role_trans *r = p->role_tr;
>>   	struct role_trans *tr;
>> -	u32 buf[3];
>> +	u32 buf[4];
>>   	size_t nel;
>>   	int rc;
>>
>> @@ -2467,8 +2468,15 @@ static int role_trans_write(struct role_trans *r, void *fp)
>>   	for (tr = r; tr; tr = tr->next) {
>>   		buf[0] = cpu_to_le32(tr->role);
>>   		buf[1] = cpu_to_le32(tr->type);
>> -		buf[2] = cpu_to_le32(tr->new_role);
>> -		rc = put_entry(buf, sizeof(u32), 3, fp);
>> +		if (p->policyvers>= POLICYDB_VERSION_ROLETRANS) {
>> +			buf[2] = cpu_to_le32(tr->cclass);
>> +			buf[3] = cpu_to_le32(tr->new_role);
>> +			rc = put_entry(buf, sizeof(u32), 4, fp);
>> +		} else {
>> +			buf[2] = cpu_to_le32(tr->new_role);
>> +			rc = put_entry(buf, sizeof(u32), 3, fp);
>> +		}
>> +
>>   		if (rc)
>>   			return rc;
>>   	}
>> @@ -3145,7 +3153,7 @@ int policydb_write(struct policydb *p, void *fp)
>>   	if (rc)
>>   		return rc;
>>
>> -	rc = role_trans_write(p->role_tr, fp);
>> +	rc = role_trans_write(p, fp);
>>   	if (rc)
>>   		return rc;
>>
>
>
>
> --
> This message was distributed to subscribers of the selinux mailing list.
> If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
> the words "unsubscribe selinux" without quotes as the message.
>

--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

  reply	other threads:[~2011-03-23 18:59 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-23  2:28 v0 Add class support to the role_transition rule Harry Ciao
2011-03-23  2:28 ` [v0 PATCH 1/3] SELinux: Add class support to the role_trans structure Harry Ciao
2011-03-23 14:40   ` Eric Paris
2011-03-24  9:43     ` HarryCiao
2011-03-24 13:21       ` Stephen Smalley
2011-03-25  6:28         ` HarryCiao
2011-03-23  2:28 ` [v0 PATCH 2/3] SELinux: Compute role in newcontext for all classes Harry Ciao
2011-03-23 13:31   ` Stephen Smalley
2011-03-24  9:56     ` HarryCiao
2011-03-24 13:25       ` Stephen Smalley
2011-03-25  6:25         ` HarryCiao
2011-03-23 14:46   ` Eric Paris
2011-03-23  2:28 ` [v0 PATCH 3/3] SELinux: Write class field in role_trans_write Harry Ciao
2011-03-23 14:48   ` Eric Paris
2011-03-23 18:59     ` Joshua Brindle [this message]
2011-03-24 10:02       ` HarryCiao
2011-03-23  2:28 ` [v0 PATCH 1/5] Add class to role_trans & role_trans_rule Harry Ciao
2011-03-23  2:28 ` [v0 PATCH 2/5] Make role_transition parser to handle class field Harry Ciao
2011-03-23 19:30   ` Eric Paris
2011-03-23 19:41     ` Joshua Brindle
2011-03-23 20:14       ` Eric Paris
2011-03-23  2:28 ` [v0 PATCH 3/5] Handle the class in role_trans structure Harry Ciao
2011-03-23 13:26   ` Joshua Brindle
2011-03-23 19:05   ` Joshua Brindle
2011-03-24 10:36     ` HarryCiao
2011-03-23  2:28 ` [v0 PATCH 4/5] Handle the class in role_trans_rule structure Harry Ciao
2011-03-23  2:28 ` [v0 PATCH 5/5] Display the class in role_transition rule Harry Ciao
2011-03-23  8:21 ` v0 Add class support to the " Harry Ciao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D8A4308.80400@manicmethod.com \
    --to=method@manicmethod.com \
    --cc=eparis@parisplace.org \
    --cc=eparis@redhat.com \
    --cc=jmorris@namei.org \
    --cc=qingtao.cao@windriver.com \
    --cc=sds@tycho.nsa.gov \
    --cc=selinux@tycho.nsa.gov \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.