aboutsummaryrefslogtreecommitdiffstats
path: root/security/commoncap.c
diff options
context:
space:
mode:
Diffstat (limited to 'security/commoncap.c')
-rw-r--r--security/commoncap.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/security/commoncap.c b/security/commoncap.c
index 2915d8503054..f66713bd7450 100644
--- a/security/commoncap.c
+++ b/security/commoncap.c
@@ -434,7 +434,6 @@ int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data
434 */ 434 */
435static int get_file_caps(struct linux_binprm *bprm, bool *effective, bool *has_cap) 435static int get_file_caps(struct linux_binprm *bprm, bool *effective, bool *has_cap)
436{ 436{
437 struct dentry *dentry;
438 int rc = 0; 437 int rc = 0;
439 struct cpu_vfs_cap_data vcaps; 438 struct cpu_vfs_cap_data vcaps;
440 439
@@ -446,9 +445,7 @@ static int get_file_caps(struct linux_binprm *bprm, bool *effective, bool *has_c
446 if (bprm->file->f_path.mnt->mnt_flags & MNT_NOSUID) 445 if (bprm->file->f_path.mnt->mnt_flags & MNT_NOSUID)
447 return 0; 446 return 0;
448 447
449 dentry = dget(bprm->file->f_path.dentry); 448 rc = get_vfs_caps_from_disk(bprm->file->f_path.dentry, &vcaps);
450
451 rc = get_vfs_caps_from_disk(dentry, &vcaps);
452 if (rc < 0) { 449 if (rc < 0) {
453 if (rc == -EINVAL) 450 if (rc == -EINVAL)
454 printk(KERN_NOTICE "%s: get_vfs_caps_from_disk returned %d for %s\n", 451 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
464 __func__, rc, bprm->filename); 461 __func__, rc, bprm->filename);
465 462
466out: 463out:
467 dput(dentry);
468 if (rc) 464 if (rc)
469 bprm_clear_caps(bprm); 465 bprm_clear_caps(bprm);
470 466