diff options
| author | Mimi Zohar <zohar@linux.vnet.ibm.com> | 2011-03-09 22:57:53 -0500 | 
|---|---|---|
| committer | Mimi Zohar <zohar@linux.vnet.ibm.com> | 2012-09-07 14:57:46 -0400 | 
| commit | 9957a5043e7b0b7361cdf48eea22b2900293e63a (patch) | |
| tree | 41930ca31f67b77fd814a5ad80fcc5d1652ccbe6 | |
| parent | a10bf26b2f53242836e9362c6c9c857b627b82a9 (diff) | |
| download | olio-linux-3.10-9957a5043e7b0b7361cdf48eea22b2900293e63a.tar.xz olio-linux-3.10-9957a5043e7b0b7361cdf48eea22b2900293e63a.zip  | |
ima: add inode_post_setattr call
Changing an inode's metadata may result in our not needing to appraise
the file.  In such cases, we must remove 'security.ima'.
Changelog v1:
- use ima_inode_post_setattr() stub function, if IMA_APPRAISE not configured
Signed-off-by: Mimi Zohar <zohar@us.ibm.com>
Acked-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Dmitry Kasatkin <dmitry.kasatkin@intel.com>
| -rw-r--r-- | fs/attr.c | 2 | ||||
| -rw-r--r-- | include/linux/ima.h | 10 | 
2 files changed, 12 insertions, 0 deletions
diff --git a/fs/attr.c b/fs/attr.c index 29e38a1f7f7..cce7df53b69 100644 --- a/fs/attr.c +++ b/fs/attr.c @@ -14,6 +14,7 @@  #include <linux/fcntl.h>  #include <linux/security.h>  #include <linux/evm.h> +#include <linux/ima.h>  /**   * inode_change_ok - check if attribute changes to an inode are allowed @@ -247,6 +248,7 @@ int notify_change(struct dentry * dentry, struct iattr * attr)  	if (!error) {  		fsnotify_change(dentry, ia_valid); +		ima_inode_post_setattr(dentry);  		evm_inode_post_setattr(dentry, ia_valid);  	} diff --git a/include/linux/ima.h b/include/linux/ima.h index 6ac8e50c6cf..e2bfbb1e9af 100644 --- a/include/linux/ima.h +++ b/include/linux/ima.h @@ -39,5 +39,15 @@ static inline int ima_file_mmap(struct file *file, unsigned long prot)  {  	return 0;  } +  #endif /* CONFIG_IMA_H */ + +#ifdef CONFIG_IMA_APPRAISE +extern void ima_inode_post_setattr(struct dentry *dentry); +#else +static inline void ima_inode_post_setattr(struct dentry *dentry) +{ +	return; +} +#endif /* CONFIG_IMA_APPRAISE_H */  #endif /* _LINUX_IMA_H */  |