diff options
author | Mimi Zohar <zohar@linux.vnet.ibm.com> | 2010-01-20 21:35:41 +0100 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2010-02-07 09:06:22 +0100 |
commit | 8eb988c70e7709b7bd1a69f0ec53d19ac20dea84 (patch) | |
tree | 6d0283a9fbca5cc104f591b9cc628edf39bc0b05 /fs/namei.c | |
parent | Take ima_path_check() in nfsd past dentry_open() in nfsd_open() (diff) | |
download | linux-8eb988c70e7709b7bd1a69f0ec53d19ac20dea84.tar.xz linux-8eb988c70e7709b7bd1a69f0ec53d19ac20dea84.zip |
fix ima breakage
The "Untangling ima mess, part 2 with counters" patch messed
up the counters. Based on conversations with Al Viro, this patch
streamlines ima_path_check() by removing the counter maintaince.
The counters are now updated independently, from measuring the file,
in __dentry_open() and alloc_file() by calling ima_counts_get().
ima_path_check() is called from nfsd and do_filp_open().
It also did not measure all files that should have been measured.
Reason: ima_path_check() got bogus value passed as mask.
[AV: mea culpa]
[AV: add missing nfsd bits]
Signed-off-by: Mimi Zohar <zohar@us.ibm.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/namei.c')
-rw-r--r-- | fs/namei.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/namei.c b/fs/namei.c index 94a5e60779f9..cd77b6375efd 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -1736,8 +1736,7 @@ do_last: if (nd.root.mnt) path_put(&nd.root); if (!IS_ERR(filp)) { - error = ima_path_check(&filp->f_path, filp->f_mode & - (MAY_READ | MAY_WRITE | MAY_EXEC)); + error = ima_path_check(filp, acc_mode); if (error) { fput(filp); filp = ERR_PTR(error); @@ -1797,8 +1796,7 @@ ok: } filp = nameidata_to_filp(&nd); if (!IS_ERR(filp)) { - error = ima_path_check(&filp->f_path, filp->f_mode & - (MAY_READ | MAY_WRITE | MAY_EXEC)); + error = ima_path_check(filp, acc_mode); if (error) { fput(filp); filp = ERR_PTR(error); |