diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2014-12-28 09:27:07 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2015-01-25 23:16:27 -0500 |
commit | f4a4a8b1252a08b60cde66a6622bbca4a7f4af2e (patch) | |
tree | 883f53870ed0ad1c9a3529e7cbfd009e2189e27f /kernel | |
parent | 5e9e2040247ac19a46d6627736ece726c46f1fdf (diff) |
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>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/auditsc.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/kernel/auditsc.c b/kernel/auditsc.c index 072566dd0caf..55f82fce2526 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c | |||
@@ -2405,7 +2405,6 @@ int __audit_log_bprm_fcaps(struct linux_binprm *bprm, | |||
2405 | struct audit_aux_data_bprm_fcaps *ax; | 2405 | struct audit_aux_data_bprm_fcaps *ax; |
2406 | struct audit_context *context = current->audit_context; | 2406 | struct audit_context *context = current->audit_context; |
2407 | struct cpu_vfs_cap_data vcaps; | 2407 | struct cpu_vfs_cap_data vcaps; |
2408 | struct dentry *dentry; | ||
2409 | 2408 | ||
2410 | ax = kmalloc(sizeof(*ax), GFP_KERNEL); | 2409 | ax = kmalloc(sizeof(*ax), GFP_KERNEL); |
2411 | if (!ax) | 2410 | if (!ax) |
@@ -2415,9 +2414,7 @@ int __audit_log_bprm_fcaps(struct linux_binprm *bprm, | |||
2415 | ax->d.next = context->aux; | 2414 | ax->d.next = context->aux; |
2416 | context->aux = (void *)ax; | 2415 | context->aux = (void *)ax; |
2417 | 2416 | ||
2418 | dentry = dget(bprm->file->f_path.dentry); | 2417 | get_vfs_caps_from_disk(bprm->file->f_path.dentry, &vcaps); |
2419 | get_vfs_caps_from_disk(dentry, &vcaps); | ||
2420 | dput(dentry); | ||
2421 | 2418 | ||
2422 | ax->fcap.permitted = vcaps.permitted; | 2419 | ax->fcap.permitted = vcaps.permitted; |
2423 | ax->fcap.inheritable = vcaps.inheritable; | 2420 | ax->fcap.inheritable = vcaps.inheritable; |