Messages in this thread - First message in thread
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
Patch in this message | | | Date | Thu, 20 Dec 2007 06:09:48 -0800 | From | , | Subject | [AppArmor 38/47] Switch to vfs_permission() in sys_fchdir() |
| |
Switch from file_permission() to vfs_permission() in sys_fchdir(): this avoids calling permission() with a NULL nameidata here.
Signed-off-by: Andreas Gruenbacher <agruen@suse.de> Signed-off-by: John Johansen <jjohansen@suse.de>
--- fs/open.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)
--- a/fs/open.c +++ b/fs/open.c @@ -512,8 +512,8 @@ out: asmlinkage long sys_fchdir(unsigned int fd) { + struct nameidata nd; struct file *file; - struct inode *inode; int error; error = -EBADF; @@ -521,15 +521,16 @@ asmlinkage long sys_fchdir(unsigned int if (!file) goto out; - inode = file->f_path.dentry->d_inode; + nd.path = file->f_path; + nd.flags = 0; error = -ENOTDIR; - if (!S_ISDIR(inode->i_mode)) + if (!S_ISDIR(nd.path.dentry->d_inode->i_mode)) goto out_putf; - error = file_permission(file, MAY_EXEC); + error = vfs_permission(&nd, MAY_EXEC); if (!error) - set_fs_pwd(current->fs, &file->f_path); + set_fs_pwd(current->fs, &nd.path); out_putf: fput(file); out: --
| |