Messages in this thread | | | Subject | Re: [PATCH 2/5] selinux: adds a private inode operation | From | Stephen Smalley <> | Date | Mon, 22 Nov 2004 08:35:21 -0500 |
| |
On Sat, 2004-11-20 at 19:13, Jeffrey Mahoney wrote: <snip> > diff -ruNpX dontdiff linux-2.6.9/security/selinux/hooks.c linux-2.6.9.selinux/security/selinux/hooks.c > --- linux-2.6.9/security/selinux/hooks.c 2004-11-19 14:40:58.000000000 -0500 > +++ linux-2.6.9.selinux/security/selinux/hooks.c 2004-11-20 17:11:22.000000000 -0500 > @@ -740,6 +740,15 @@ static int inode_doinit_with_dentry(stru > if (isec->initialized) > goto out; > > + if (opt_dentry && opt_dentry->d_parent && opt_dentry->d_parent->d_inode) { > + struct inode_security_struct *pisec = opt_dentry->d_parent->d_inode->i_security; > + if (pisec->inherit) { > + isec->sid = pisec->sid; > + isec->initialized = 1; > + goto out; > + } > + } > +
Shouldn't this be using dget_parent() for safety?
> @@ -2391,6 +2400,15 @@ static int selinux_inode_listsecurity(st > return len; > } > > +static void selinux_inode_mark_private(struct inode *inode) > +{ > + struct inode_security_struct *isec = inode->i_security; > + > + isec->sid = SECINITSID_KERNEL; > + isec->initialized = 1; > + isec->inherit = 1; > +} > +
Don't we also need to modify inode_has_perm() to skip checking if the inode has the kernel SID (as is already done by socket_has_perm) to avoid the search checks when the reiserfs code looks up xattrs? Otherwise, we'll see access attempts by the process context on directories with the kernel SID upon such lookups.
-- Stephen Smalley <sds@epoch.ncsc.mil> National Security Agency
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |