|
@@ -366,7 +366,7 @@ SYSCALL_DEFINE1(chdir, const char __user *, filename)
|
|
|
if (error)
|
|
|
goto out;
|
|
|
|
|
|
- error = inode_permission(path.dentry->d_inode, MAY_EXEC | MAY_ACCESS);
|
|
|
+ error = inode_permission(path.dentry->d_inode, MAY_EXEC | MAY_CHDIR);
|
|
|
if (error)
|
|
|
goto dput_and_out;
|
|
|
|
|
@@ -395,7 +395,7 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd)
|
|
|
if (!S_ISDIR(inode->i_mode))
|
|
|
goto out_putf;
|
|
|
|
|
|
- error = inode_permission(inode, MAY_EXEC | MAY_ACCESS);
|
|
|
+ error = inode_permission(inode, MAY_EXEC | MAY_CHDIR);
|
|
|
if (!error)
|
|
|
set_fs_pwd(current->fs, &file->f_path);
|
|
|
out_putf:
|
|
@@ -413,7 +413,7 @@ SYSCALL_DEFINE1(chroot, const char __user *, filename)
|
|
|
if (error)
|
|
|
goto out;
|
|
|
|
|
|
- error = inode_permission(path.dentry->d_inode, MAY_EXEC | MAY_ACCESS);
|
|
|
+ error = inode_permission(path.dentry->d_inode, MAY_EXEC | MAY_CHDIR);
|
|
|
if (error)
|
|
|
goto dput_and_out;
|
|
|
|