Re: [PATCH] selinux: wrap global selinux state

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Feb 16, 2018 at 12:19 PM, Stephen Smalley <sds@xxxxxxxxxxxxx> wrote:
> Define a selinux state structure (struct selinux_state) for
> global SELinux state and pass it explicitly to all security server
> functions.  The public portion of the structure contains state
> that is used throughout the SELinux code, such as the enforcing mode.
> The structure also contains a pointer to a selinux_ss structure whose
> definition is private to the security server and contains security
> server specific state such as the policy database and SID table.
>
> This change should have no effect on SELinux behavior or APIs
> (userspace or LSM).  It merely wraps SELinux state and passes it
> explicitly as needed.
>
> Signed-off-by: Stephen Smalley <sds@xxxxxxxxxxxxx>
> ---
> This is effectively v2 of "selinux: introduce a selinux namespace",
> but rewritten per the review to only perform the encapsulation of state
> and rebased onto latest selinux/next, currently v4.16-rc1-based.
> Changes from v1:
> - Rename selinux_ns to selinux_state,
> - Statically allocate selinux_state and selinux_ss,
> - Drop any namespace-specific fields, code, and references,
> - Use static inlines rather than macros.
>
> I also intend to rework the "selinux: support multiple selinuxfs instances"
> and "selinux: move the AVC into the selinux namespace" patches similarly
> and re-base on this one, but want to wait until this one is finalized since
> every change to this own will require further reworking of the later ones.

Thanks for the respin Stephen, I know that was probably a bit painful
given the size of the patch; it definitely wasn't fun to review.  For
the most part I think everything here looks fine (minor nitpick, see
below), and because of these points:

1) Everything here is internal to SELinux so we change it without
breaking userspace or even other parts of the kernel.

2) Other work is dependent on this patch.

3) A patch of this size and scopr, I want it in linux-next sooner
rather than later.

... I'm going to merge this now, or rather as soon as my test kernel
finishes building and I can give this a quick sanity check.

As expected, there were some minor merge problems with the SCTP
patches, but those were trivially fixed.

> diff --git a/security/selinux/include/security.h b/security/selinux/include/security.h
> index 02f0412d42f2..c3a1ef10e710 100644
> --- a/security/selinux/include/security.h
> +++ b/security/selinux/include/security.h

...

> +static inline bool is_enforcing(struct selinux_state *state)
> +static inline void set_enforcing(struct selinux_state *state, bool value)

More nitpickery: I'm not a fan of these names.

I'm going to take partial blame for this as I didn't pay close enough
attention to the names earlier, I was focused on the #define vs inline
function nature of the functions.  I realize it's late, and I want to
get this merged (see above), so I'll put together a separate patch on
top of this to change the names.

-- 
paul moore
www.paul-moore.com




[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux