aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--security/selinux/hooks.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index a2d510895ff3..f9d398bc9dcd 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -1808,13 +1808,13 @@ out:
1808/* 1808/*
1809 * Determine the label for an inode that might be unioned. 1809 * Determine the label for an inode that might be unioned.
1810 */ 1810 */
1811static int selinux_determine_inode_label(struct inode *dir, 1811static int
1812 const struct qstr *name, 1812selinux_determine_inode_label(const struct task_security_struct *tsec,
1813 u16 tclass, 1813 struct inode *dir,
1814 u32 *_new_isid) 1814 const struct qstr *name, u16 tclass,
1815 u32 *_new_isid)
1815{ 1816{
1816 const struct superblock_security_struct *sbsec = dir->i_sb->s_security; 1817 const struct superblock_security_struct *sbsec = dir->i_sb->s_security;
1817 const struct task_security_struct *tsec = current_security();
1818 1818
1819 if ((sbsec->flags & SE_SBINITIALIZED) && 1819 if ((sbsec->flags & SE_SBINITIALIZED) &&
1820 (sbsec->behavior == SECURITY_FS_USE_MNTPOINT)) { 1820 (sbsec->behavior == SECURITY_FS_USE_MNTPOINT)) {
@@ -1857,8 +1857,8 @@ static int may_create(struct inode *dir,
1857 if (rc) 1857 if (rc)
1858 return rc; 1858 return rc;
1859 1859
1860 rc = selinux_determine_inode_label(dir, &dentry->d_name, tclass, 1860 rc = selinux_determine_inode_label(current_security(), dir,
1861 &newsid); 1861 &dentry->d_name, tclass, &newsid);
1862 if (rc) 1862 if (rc)
1863 return rc; 1863 return rc;
1864 1864
@@ -2838,7 +2838,8 @@ static int selinux_dentry_init_security(struct dentry *dentry, int mode,
2838 u32 newsid; 2838 u32 newsid;
2839 int rc; 2839 int rc;
2840 2840
2841 rc = selinux_determine_inode_label(d_inode(dentry->d_parent), name, 2841 rc = selinux_determine_inode_label(current_security(),
2842 d_inode(dentry->d_parent), name,
2842 inode_mode_to_security_class(mode), 2843 inode_mode_to_security_class(mode),
2843 &newsid); 2844 &newsid);
2844 if (rc) 2845 if (rc)
@@ -2863,7 +2864,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
2863 sid = tsec->sid; 2864 sid = tsec->sid;
2864 newsid = tsec->create_sid; 2865 newsid = tsec->create_sid;
2865 2866
2866 rc = selinux_determine_inode_label( 2867 rc = selinux_determine_inode_label(current_security(),
2867 dir, qstr, 2868 dir, qstr,
2868 inode_mode_to_security_class(inode->i_mode), 2869 inode_mode_to_security_class(inode->i_mode),
2869 &newsid); 2870 &newsid);