Commit e606758e authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] Remove use of nameidata by selinux_inode_permission

From: Stephen Smalley <sds@epoch.ncsc.mil>

This patch removes the use of nameidata by selinux_inode_permission, as this
appears to be unsafe in certain cases (e.g.  path_walk call from
rpc_lookup_parent), leading to an Oops if d_path is subsequently called by
avc_audit on the (mnt,dentry) pair to generate a pathname for an audit
message.

The change does not affect the ability of SELinux to perform its permission
check (which only requires the inode), only the set of information that is
available for audit messages.  We'll investigate better approaches for the
SELinux audit generation in the future.
parent 38181ac4
...@@ -1738,10 +1738,6 @@ static int selinux_inode_permission(struct inode *inode, int mask, ...@@ -1738,10 +1738,6 @@ static int selinux_inode_permission(struct inode *inode, int mask,
return 0; return 0;
} }
if (nd && nd->dentry)
return dentry_has_perm(current, nd->mnt, nd->dentry,
file_mask_to_av(inode->i_mode, mask));
return inode_has_perm(current, inode, return inode_has_perm(current, inode,
file_mask_to_av(inode->i_mode, mask), NULL, NULL); file_mask_to_av(inode->i_mode, mask), NULL, NULL);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment