Switch from file_permission() to vfs_permission() in do_path_lookup():
this avoids calling permission() with a NULL nameidata here.

Signed-off-by: Andreas Gruenbacher <[EMAIL PROTECTED]>
Signed-off-by: John Johansen <[EMAIL PROTECTED]>

---
 fs/namei.c |   13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1130,25 +1130,24 @@ static int fastcall do_path_lookup(int d
                nd->dentry = dget(fs->pwd);
                read_unlock(&fs->lock);
        } else {
-               struct dentry *dentry;
-
                file = fget_light(dfd, &fput_needed);
                retval = -EBADF;
                if (!file)
                        goto out_fail;
 
-               dentry = file->f_path.dentry;
+               nd->dentry = file->f_path.dentry;
+               nd->mnt = file->f_path.mnt;
 
                retval = -ENOTDIR;
-               if (!S_ISDIR(dentry->d_inode->i_mode))
+               if (!S_ISDIR(nd->dentry->d_inode->i_mode))
                        goto fput_fail;
 
-               retval = file_permission(file, MAY_EXEC);
+               retval = vfs_permission(nd, MAY_EXEC);
                if (retval)
                        goto fput_fail;
 
-               nd->mnt = mntget(file->f_path.mnt);
-               nd->dentry = dget(dentry);
+               mntget(nd->mnt);
+               dget(nd->dentry);
 
                fput_light(file, fput_needed);
        }

-- 
-
To unsubscribe from this list: send the line "unsubscribe 
linux-security-module" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to