Re: [PATCH v2 1/3] selinux: simplify away security_policydb_len()

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

 



On Wed, Aug 26, 2020 at 9:59 AM Ondrej Mosnacek <omosnace@xxxxxxxxxx> wrote:
>
> Remove the security_policydb_len() calls from sel_open_policy() and
> instead update the inode size from the size returned from
> security_read_policy().
>
> Since after this change security_policydb_len() is only called from
> security_load_policy(), remove it entirely and just open-code it there.
>
> Also, since security_load_policy() is always called with fsi->mutex
> held, make it dereference the policy pointer directly and drop the
> unnecessary RCU locking.
>
> Signed-off-by: Ondrej Mosnacek <omosnace@xxxxxxxxxx>

One comment below but nonetheless:
Acked-by: Stephen Smalley <stephen.smalley.work@xxxxxxxxx>

> diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c
> index 8381614627569..7cc2f7486c18f 100644
> --- a/security/selinux/ss/services.c
> +++ b/security/selinux/ss/services.c
> @@ -3912,11 +3896,17 @@ int security_read_policy(struct selinux_state *state,
>         int rc;
>         struct policy_file fp;
>
> -       if (!selinux_initialized(state))
> +       /*
> +        * NOTE: We do not need to take the rcu read lock
> +        * around the code below because other policy-modifying
> +        * operations are already excluded by selinuxfs via
> +        * fsi->mutex.
> +        */
> +       policy = rcu_dereference_check(state->policy, 1);
> +       if (!policy)
>                 return -EINVAL;

If/when my patch to move the mutex to selinux_state and use it in
rcu_dereference_protected() lands, we'll want to change this one over
too.



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

  Powered by Linux