From: Paul Moore <paul@paul-moore.com>
To: Joshua Brindle <joshua.brindle@crunchydata.com>
Cc: selinux@vger.kernel.org
Subject: Re: [PATCH v2] default_range glblub implementation
Date: Fri, 30 Aug 2019 17:38:08 -0400 [thread overview]
Message-ID: <CAHC9VhSBXGGQVoaXd0b8vh04Lgrfmx1Fsd=706yr=6g6tORbxA@mail.gmail.com> (raw)
In-Reply-To: <CAGB+Vh7GpEC5vzvUFiUrzvKEq4ihOENZdM9dOvcL+Lap4Uh96w@mail.gmail.com>
On Thu, Aug 29, 2019 at 1:11 PM Joshua Brindle
<joshua.brindle@crunchydata.com> wrote:
> On Thu, Aug 29, 2019 at 12:59 PM Paul Moore <paul@paul-moore.com> wrote:
> > On Thu, Aug 29, 2019 at 9:29 AM Joshua Brindle
> > <joshua.brindle@crunchydata.com> wrote:
> > > On Wed, Aug 28, 2019 at 6:31 PM Paul Moore <paul@paul-moore.com> wrote:
> > > > On Wed, Aug 28, 2019 at 4:43 PM Joshua Brindle
> > > > <joshua.brindle@crunchydata.com> wrote:
> > > > >
> > > > > A policy developer can now specify glblub as a default_range default and
> > > > > the computed transition will be the intersection of the mls range of
> > > > > the two contexts.
> > > > >
> > > > > The glb (greatest lower bound) lub (lowest upper bound) of a range is calculated
> > > > > as the greater of the low sensitivities and the lower of the high sensitivities
> > > > > and the and of each category bitmap.
> > > > >
> > > > > This can be used by MLS solution developers to compute a context that satisfies,
> > > > > for example, the range of a network interface and the range of a user logging in.
> > > > >
> > > > > Some examples are:
> > > > >
> > > > > User Permitted Range | Network Device Label | Computed Label
> > > > > ---------------------|----------------------|----------------
> > > > > S0-S1:c0.c12 | S0 | S0
> > > > > S0-S1:c0.c12 | S0-S1:c0.c1024 | S0-S1:c0.c12
> > > > > S0-S4:c0.c512 | S1-S1:c0.c1024 | S1-S1:c0.c512
> > > > > S0-S16:c0,c2 | S4-S6:c0.c128 | S4-S6:c0,c2
> > > > > S0-S4 | S2-S6 | S2-S4
> > > > > S0-S4 | S5-S8 | INVALID
> > > > > S5-S8 | S0-S4 | INVALID
> > > > > S6:c0,c2-S7:c4,c5 | S0:c2,c4-S6:c5.c100 | S6:c2-S6:c5
> > > > >
> > > > > Signed-off-by: Joshua Brindle <joshua.brindle@crunchydata.com>
> > > > > ---
> > > > > security/selinux/include/security.h | 3 ++-
> > > > > security/selinux/ss/context.h | 28 ++++++++++++++++++++++++++++
> > > > > security/selinux/ss/ebitmap.c | 18 ++++++++++++++++++
> > > > > security/selinux/ss/ebitmap.h | 1 +
> > > > > security/selinux/ss/mls.c | 2 ++
> > > > > security/selinux/ss/policydb.c | 5 +++++
> > > > > security/selinux/ss/policydb.h | 1 +
> > > > > 7 files changed, 57 insertions(+), 1 deletion(-)
> > > >
> > > > You incorporated some feedback from the v1 patch, but you ignored
> > > > some, can you explain why?
> > > >
> > >
> > > I apologize, I missed a couple C++ style comments, I'll fix those and
> > > resend, was there anything else? I thought I addressed all of the
> > > technical concerns.
> >
> > My biggest concern wasn't really the style nits (although please do
> > fix those), but rather the guts of ebitmap_and() and the use of
> > ebitmap_get_bit() instead of something a bit more efficient. Here is
> > my original comment:
> >
> > "Beyond that, since this is an AND operation, could we make better
> > use of things like find_first_bit()/ebitmap_start_positive()/
> > ebitmap_next_positive() to skip along one of the bitmaps instead
> > of needing to call ebitmap_get_bit() for each bit? I imagine it
> > would be quicker that way."
> >
>
> I used ebitmap_for_each_positive_bit() for the outer loop which uses
> ebitmap_start_positive() and ebitmap_next_positive().
Sorry, my mistake. Your implementation wasn't quite what I was
expecting and on quick glance it looked similar to your previous
effort so I assumed it hadn't changed. The v2 variant should be fine.
> I suppose I could try to track both lists at the same time and AND the
> bitmaps when the startbit is the same but I don't expect this to
> really be any kind of bottleneck.
--
paul moore
www.paul-moore.com
next prev parent reply other threads:[~2019-08-30 21:38 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-28 20:43 [PATCH v2] default_range glblub implementation Joshua Brindle
2019-08-28 22:31 ` Paul Moore
2019-08-29 13:29 ` Joshua Brindle
2019-08-29 16:58 ` Paul Moore
2019-08-29 17:11 ` Joshua Brindle
2019-08-30 21:38 ` Paul Moore [this message]
2019-08-29 20:45 ` Stephen Smalley
2019-08-29 21:10 ` Joshua Brindle
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='CAHC9VhSBXGGQVoaXd0b8vh04Lgrfmx1Fsd=706yr=6g6tORbxA@mail.gmail.com' \
--to=paul@paul-moore.com \
--cc=joshua.brindle@crunchydata.com \
--cc=selinux@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).