diff options
author | Mimi Zohar <zohar@linux.vnet.ibm.com> | 2010-01-20 15:35:41 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2010-02-07 03:06:22 -0500 |
commit | 8eb988c70e7709b7bd1a69f0ec53d19ac20dea84 (patch) | |
tree | 6d0283a9fbca5cc104f591b9cc628edf39bc0b05 /include/linux/ima.h | |
parent | 1e41568d7378d1ba8c64ba137b9ddd00b59f893a (diff) |
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 'include/linux/ima.h')
-rw-r--r-- | include/linux/ima.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/ima.h b/include/linux/ima.h index 99dc6d5cf7e5..aa55a8f1f5b9 100644 --- a/include/linux/ima.h +++ b/include/linux/ima.h | |||
@@ -17,7 +17,7 @@ struct linux_binprm; | |||
17 | extern int ima_bprm_check(struct linux_binprm *bprm); | 17 | extern int ima_bprm_check(struct linux_binprm *bprm); |
18 | extern int ima_inode_alloc(struct inode *inode); | 18 | extern int ima_inode_alloc(struct inode *inode); |
19 | extern void ima_inode_free(struct inode *inode); | 19 | extern void ima_inode_free(struct inode *inode); |
20 | extern int ima_path_check(struct path *path, int mask); | 20 | extern int ima_path_check(struct file *file, int mask); |
21 | extern void ima_file_free(struct file *file); | 21 | extern void ima_file_free(struct file *file); |
22 | extern int ima_file_mmap(struct file *file, unsigned long prot); | 22 | extern int ima_file_mmap(struct file *file, unsigned long prot); |
23 | extern void ima_counts_get(struct file *file); | 23 | extern void ima_counts_get(struct file *file); |
@@ -38,7 +38,7 @@ static inline void ima_inode_free(struct inode *inode) | |||
38 | return; | 38 | return; |
39 | } | 39 | } |
40 | 40 | ||
41 | static inline int ima_path_check(struct path *path, int mask) | 41 | static inline int ima_path_check(struct file *file, int mask) |
42 | { | 42 | { |
43 | return 0; | 43 | return 0; |
44 | } | 44 | } |