diff options
Diffstat (limited to 'fs/open.c')
-rw-r--r-- | fs/open.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -366,7 +366,7 @@ SYSCALL_DEFINE1(chdir, const char __user *, filename) | |||
366 | if (error) | 366 | if (error) |
367 | goto out; | 367 | goto out; |
368 | 368 | ||
369 | error = inode_permission(path.dentry->d_inode, MAY_EXEC | MAY_ACCESS); | 369 | error = inode_permission(path.dentry->d_inode, MAY_EXEC | MAY_CHDIR); |
370 | if (error) | 370 | if (error) |
371 | goto dput_and_out; | 371 | goto dput_and_out; |
372 | 372 | ||
@@ -395,7 +395,7 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd) | |||
395 | if (!S_ISDIR(inode->i_mode)) | 395 | if (!S_ISDIR(inode->i_mode)) |
396 | goto out_putf; | 396 | goto out_putf; |
397 | 397 | ||
398 | error = inode_permission(inode, MAY_EXEC | MAY_ACCESS); | 398 | error = inode_permission(inode, MAY_EXEC | MAY_CHDIR); |
399 | if (!error) | 399 | if (!error) |
400 | set_fs_pwd(current->fs, &file->f_path); | 400 | set_fs_pwd(current->fs, &file->f_path); |
401 | out_putf: | 401 | out_putf: |
@@ -413,7 +413,7 @@ SYSCALL_DEFINE1(chroot, const char __user *, filename) | |||
413 | if (error) | 413 | if (error) |
414 | goto out; | 414 | goto out; |
415 | 415 | ||
416 | error = inode_permission(path.dentry->d_inode, MAY_EXEC | MAY_ACCESS); | 416 | error = inode_permission(path.dentry->d_inode, MAY_EXEC | MAY_CHDIR); |
417 | if (error) | 417 | if (error) |
418 | goto dput_and_out; | 418 | goto dput_and_out; |
419 | 419 | ||