diff options
Diffstat (limited to 'kernel/sys.c')
-rw-r--r-- | kernel/sys.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/kernel/sys.c b/kernel/sys.c index 2e18d33ca775..e10566bee399 100644 --- a/kernel/sys.c +++ b/kernel/sys.c | |||
@@ -1794,14 +1794,14 @@ SYSCALL_DEFINE1(umask, int, mask) | |||
1794 | static int prctl_set_mm_exe_file(struct mm_struct *mm, unsigned int fd) | 1794 | static int prctl_set_mm_exe_file(struct mm_struct *mm, unsigned int fd) |
1795 | { | 1795 | { |
1796 | struct fd exe; | 1796 | struct fd exe; |
1797 | struct dentry *dentry; | 1797 | struct inode *inode; |
1798 | int err; | 1798 | int err; |
1799 | 1799 | ||
1800 | exe = fdget(fd); | 1800 | exe = fdget(fd); |
1801 | if (!exe.file) | 1801 | if (!exe.file) |
1802 | return -EBADF; | 1802 | return -EBADF; |
1803 | 1803 | ||
1804 | dentry = exe.file->f_path.dentry; | 1804 | inode = file_inode(exe.file); |
1805 | 1805 | ||
1806 | /* | 1806 | /* |
1807 | * Because the original mm->exe_file points to executable file, make | 1807 | * Because the original mm->exe_file points to executable file, make |
@@ -1809,11 +1809,11 @@ static int prctl_set_mm_exe_file(struct mm_struct *mm, unsigned int fd) | |||
1809 | * overall picture. | 1809 | * overall picture. |
1810 | */ | 1810 | */ |
1811 | err = -EACCES; | 1811 | err = -EACCES; |
1812 | if (!S_ISREG(dentry->d_inode->i_mode) || | 1812 | if (!S_ISREG(inode->i_mode) || |
1813 | exe.file->f_path.mnt->mnt_flags & MNT_NOEXEC) | 1813 | exe.file->f_path.mnt->mnt_flags & MNT_NOEXEC) |
1814 | goto exit; | 1814 | goto exit; |
1815 | 1815 | ||
1816 | err = inode_permission(dentry->d_inode, MAY_EXEC); | 1816 | err = inode_permission(inode, MAY_EXEC); |
1817 | if (err) | 1817 | if (err) |
1818 | goto exit; | 1818 | goto exit; |
1819 | 1819 | ||