file->f_path.dentry is pinned down for as long as the file is open...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -434,7 +434,6 @@ int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data
|
||||
*/
|
||||
static int get_file_caps(struct linux_binprm *bprm, bool *effective, bool *has_cap)
|
||||
{
|
||||
struct dentry *dentry;
|
||||
int rc = 0;
|
||||
struct cpu_vfs_cap_data vcaps;
|
||||
|
||||
@@ -446,9 +445,7 @@ static int get_file_caps(struct linux_binprm *bprm, bool *effective, bool *has_c
|
||||
if (bprm->file->f_path.mnt->mnt_flags & MNT_NOSUID)
|
||||
return 0;
|
||||
|
||||
dentry = dget(bprm->file->f_path.dentry);
|
||||
|
||||
rc = get_vfs_caps_from_disk(dentry, &vcaps);
|
||||
rc = get_vfs_caps_from_disk(bprm->file->f_path.dentry, &vcaps);
|
||||
if (rc < 0) {
|
||||
if (rc == -EINVAL)
|
||||
printk(KERN_NOTICE "%s: get_vfs_caps_from_disk returned %d for %s\n",
|
||||
@@ -464,7 +461,6 @@ static int get_file_caps(struct linux_binprm *bprm, bool *effective, bool *has_c
|
||||
__func__, rc, bprm->filename);
|
||||
|
||||
out:
|
||||
dput(dentry);
|
||||
if (rc)
|
||||
bprm_clear_caps(bprm);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user