summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Kasatkin <d.kasatkin@samsung.com>2014-10-23 15:53:21 +0300
committerMimi Zohar <zohar@linux.vnet.ibm.com>2015-05-21 13:28:46 -0400
commitc68ed80c97d9720f51ef31fe91560fdd1e121533 (patch)
tree8befae768ac2bc711e7ff699ee401d3d1fb97cbd
parentcd025f7f94108995383edddfb61fc8afea6c66a9 (diff)
downloadop-kernel-dev-c68ed80c97d9720f51ef31fe91560fdd1e121533.zip
op-kernel-dev-c68ed80c97d9720f51ef31fe91560fdd1e121533.tar.gz
ima: limit file hash setting by user to fix and log modes
File hashes are automatically set and updated and should not be manually set. This patch limits file hash setting to fix and log modes. Signed-off-by: Dmitry Kasatkin <d.kasatkin@samsung.com> Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
-rw-r--r--security/integrity/ima/ima_appraise.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/security/integrity/ima/ima_appraise.c b/security/integrity/ima/ima_appraise.c
index 4df493e..1873b55 100644
--- a/security/integrity/ima/ima_appraise.c
+++ b/security/integrity/ima/ima_appraise.c
@@ -378,10 +378,14 @@ int ima_inode_setxattr(struct dentry *dentry, const char *xattr_name,
result = ima_protect_xattr(dentry, xattr_name, xattr_value,
xattr_value_len);
if (result == 1) {
+ bool digsig;
+
if (!xattr_value_len || (xvalue->type >= IMA_XATTR_LAST))
return -EINVAL;
- ima_reset_appraise_flags(d_backing_inode(dentry),
- (xvalue->type == EVM_IMA_XATTR_DIGSIG) ? 1 : 0);
+ digsig = (xvalue->type == EVM_IMA_XATTR_DIGSIG);
+ if (!digsig && (ima_appraise & IMA_APPRAISE_ENFORCE))
+ return -EPERM;
+ ima_reset_appraise_flags(d_backing_inode(dentry), digsig);
result = 0;
}
return result;
OpenPOWER on IntegriCloud