diff options
-rw-r--r-- | fs/exec.c | 6 |
1 files changed, 1 insertions, 5 deletions
@@ -112,9 +112,6 @@ asmlinkage long sys_uselib(const char __user * library) | |||
112 | if (error) | 112 | if (error) |
113 | goto out; | 113 | goto out; |
114 | 114 | ||
115 | error = -EACCES; | ||
116 | if (nd.mnt->mnt_flags & MNT_NOEXEC) | ||
117 | goto exit; | ||
118 | error = -EINVAL; | 115 | error = -EINVAL; |
119 | if (!S_ISREG(nd.dentry->d_inode->i_mode)) | 116 | if (!S_ISREG(nd.dentry->d_inode->i_mode)) |
120 | goto exit; | 117 | goto exit; |
@@ -658,8 +655,7 @@ struct file *open_exec(const char *name) | |||
658 | if (!err) { | 655 | if (!err) { |
659 | struct inode *inode = nd.dentry->d_inode; | 656 | struct inode *inode = nd.dentry->d_inode; |
660 | file = ERR_PTR(-EACCES); | 657 | file = ERR_PTR(-EACCES); |
661 | if (!(nd.mnt->mnt_flags & MNT_NOEXEC) && | 658 | if (S_ISREG(inode->i_mode)) { |
662 | S_ISREG(inode->i_mode)) { | ||
663 | int err = vfs_permission(&nd, MAY_EXEC); | 659 | int err = vfs_permission(&nd, MAY_EXEC); |
664 | file = ERR_PTR(err); | 660 | file = ERR_PTR(err); |
665 | if (!err) { | 661 | if (!err) { |