|
@@ -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)
|
|
static int get_file_caps(struct linux_binprm *bprm, bool *effective, bool *has_cap)
|
|
{
|
|
{
|
|
- struct dentry *dentry;
|
|
|
|
int rc = 0;
|
|
int rc = 0;
|
|
struct cpu_vfs_cap_data vcaps;
|
|
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)
|
|
if (bprm->file->f_path.mnt->mnt_flags & MNT_NOSUID)
|
|
return 0;
|
|
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 < 0) {
|
|
if (rc == -EINVAL)
|
|
if (rc == -EINVAL)
|
|
printk(KERN_NOTICE "%s: get_vfs_caps_from_disk returned %d for %s\n",
|
|
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);
|
|
__func__, rc, bprm->filename);
|
|
|
|
|
|
out:
|
|
out:
|
|
- dput(dentry);
|
|
|
|
if (rc)
|
|
if (rc)
|
|
bprm_clear_caps(bprm);
|
|
bprm_clear_caps(bprm);
|
|
|
|
|