[PATCH v2] Add security.* XATTR support for the UBIFS

Stephen Smalley sds at tycho.nsa.gov
Tue Apr 10 08:46:25 EDT 2012


On Mon, 2012-04-09 at 16:51 -0700, subodh.nijsure at gmail.com wrote:
> From: Subodh Nijsure <snijsure at grid-net.com>
> 
> Also fix couple of bugs in UBIFS extended attribute length calculation.
> 
> Changes Since V1:
>          Instead of just handling security.selinux extended attribute handle
>          all security.* attributes.
> 
> TESTING: Tested on  MX28 based platforms using Micron MT29F2G08ABAEAH4 NAND
>          With these change we are able to label UBIFS filesystem with
>          security.selinux and run system with selinux enabled.
>          This change also allows one to set other security.* extended
>          attributesr, such as security.smack security.evm, security.ima
>          Ran integck test on UBI filesystem.
> 
> Signed-off-by: Subodh Nijsure <snijsure at grid-net.com>
> ---
>  fs/ubifs/dir.c     |    4 ++
>  fs/ubifs/file.c    |    6 ++
>  fs/ubifs/journal.c |   12 +++-
>  fs/ubifs/super.c   |    3 +
>  fs/ubifs/ubifs.h   |    9 +++
>  fs/ubifs/xattr.c   |  147 ++++++++++++++++++++++++++++++++++++++++++++++++----
>  6 files changed, 167 insertions(+), 14 deletions(-)
> 
> diff --git a/fs/ubifs/dir.c b/fs/ubifs/dir.c
> index ec9f187..f4e06c4 100644
> --- a/fs/ubifs/dir.c
> +++ b/fs/ubifs/dir.c
> @@ -293,6 +293,7 @@ static int ubifs_create(struct inode *dir, struct dentry *dentry, umode_t mode,
>  	ubifs_release_budget(c, &req);
>  	insert_inode_hash(inode);
>  	d_instantiate(dentry, inode);
> +	ubifs_init_security(dir, inode, &dentry->d_name);
>  	return 0;
>  
>  out_cancel:

The ubifs_init_security() should occur before d_instantiate() so that
the inode is not accessible to other threads before its security
attributes have been set.  And if it fails, you would ideally drop the
inode altogether and return an error to the creating process.

-- 
Stephen Smalley
National Security Agency




More information about the linux-mtd mailing list