Re: [PATCH] SELinux: no BUG_ON(!ss_initialized) in selinux_clone_mnt_opts

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

 



On Mon, 2008-04-21 at 16:24 -0400, Eric Paris wrote:
> The Fedora installer actually makes multiple NFS mounts before it loads
> selinux policy.  The code in selinux_clone_mnt_opts() assumed that the
> init process would always be loading policy before NFS was up and
> running.  It might be possible to hit this in a diskless environment as
> well, I'm not sure.  There is no need to BUG_ON() in this situation
> since we can safely continue given the circumstances.
> 
> Signed-off-by: Eric Paris <eparis@xxxxxxxxxx>

Acked-by:  Stephen Smalley <sds@xxxxxxxxxxxxx>

> 
> ---
> 
>  security/selinux/hooks.c |   15 ++++++++++++---
>  1 files changed, 12 insertions(+), 3 deletions(-)
> 
> diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
> index f9927f0..92c8910 100644
> --- a/security/selinux/hooks.c
> +++ b/security/selinux/hooks.c
> @@ -755,9 +755,18 @@ static void selinux_sb_clone_mnt_opts(const struct super_block *oldsb,
>  	int set_context =	(oldsbsec->flags & CONTEXT_MNT);
>  	int set_rootcontext =	(oldsbsec->flags & ROOTCONTEXT_MNT);
>  
> -	/* we can't error, we can't save the info, this shouldn't get called
> -	 * this early in the boot process. */
> -	BUG_ON(!ss_initialized);
> +	/*
> +	 * if the parent was able to be mounted it clearly had no special lsm
> +	 * mount options.  thus we can safely put this sb on the list and deal
> +	 * with it later
> +	 */
> +	if (!ss_initialized) {
> +		spin_lock(&sb_security_lock);
> +		if (list_empty(&newsbsec->list))
> +			list_add(&newsbsec->list, &superblock_security_head);
> +		spin_unlock(&sb_security_lock);
> +		return;
> +	}
>  
>  	/* how can we clone if the old one wasn't set up?? */
>  	BUG_ON(!oldsbsec->initialized);
> 
-- 
Stephen Smalley
National Security Agency


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

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

  Powered by Linux