提交 1a159dd2 编写于 作者: M Miklos Szeredi 提交者: Linus Torvalds

exec: remove unnecessary check for MNT_NOEXEC

vfs_permission(MAY_EXEC) checks if the filesystem is mounted with "noexec", so
there's no need to repeat this check in sys_uselib() and open_exec().
Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 22590e41
...@@ -112,9 +112,6 @@ asmlinkage long sys_uselib(const char __user * library) ...@@ -112,9 +112,6 @@ asmlinkage long sys_uselib(const char __user * library)
if (error) if (error)
goto out; goto out;
error = -EACCES;
if (nd.mnt->mnt_flags & MNT_NOEXEC)
goto exit;
error = -EINVAL; error = -EINVAL;
if (!S_ISREG(nd.dentry->d_inode->i_mode)) if (!S_ISREG(nd.dentry->d_inode->i_mode))
goto exit; goto exit;
...@@ -658,8 +655,7 @@ struct file *open_exec(const char *name) ...@@ -658,8 +655,7 @@ struct file *open_exec(const char *name)
if (!err) { if (!err) {
struct inode *inode = nd.dentry->d_inode; struct inode *inode = nd.dentry->d_inode;
file = ERR_PTR(-EACCES); file = ERR_PTR(-EACCES);
if (!(nd.mnt->mnt_flags & MNT_NOEXEC) && if (S_ISREG(inode->i_mode)) {
S_ISREG(inode->i_mode)) {
int err = vfs_permission(&nd, MAY_EXEC); int err = vfs_permission(&nd, MAY_EXEC);
file = ERR_PTR(err); file = ERR_PTR(err);
if (!err) { if (!err) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册