diff options
author | James Morris <james.l.morris@oracle.com> | 2014-09-12 14:40:22 +0200 |
---|---|---|
committer | James Morris <james.l.morris@oracle.com> | 2014-09-12 14:40:22 +0200 |
commit | ac60ab4b4968b54fb5af20eac9dd78e36ad910c1 (patch) | |
tree | a47e414fb34d91eb012b121d8138c6cee1fe065b /security/integrity/ima/ima_appraise.c | |
parent | seccomp: Add reviewers to MAINTAINERS (diff) | |
parent | integrity: make integrity files as 'integrity' module (diff) | |
download | linux-ac60ab4b4968b54fb5af20eac9dd78e36ad910c1.tar.xz linux-ac60ab4b4968b54fb5af20eac9dd78e36ad910c1.zip |
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity into next
Diffstat (limited to 'security/integrity/ima/ima_appraise.c')
-rw-r--r-- | security/integrity/ima/ima_appraise.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/security/integrity/ima/ima_appraise.c b/security/integrity/ima/ima_appraise.c index 86bfd5c5df85..013ec3f0e42d 100644 --- a/security/integrity/ima/ima_appraise.c +++ b/security/integrity/ima/ima_appraise.c @@ -183,7 +183,7 @@ int ima_read_xattr(struct dentry *dentry, int ima_appraise_measurement(int func, struct integrity_iint_cache *iint, struct file *file, const unsigned char *filename, struct evm_ima_xattr_data *xattr_value, - int xattr_len) + int xattr_len, int opened) { static const char op[] = "appraise_data"; char *cause = "unknown"; @@ -192,8 +192,6 @@ int ima_appraise_measurement(int func, struct integrity_iint_cache *iint, enum integrity_status status = INTEGRITY_UNKNOWN; int rc = xattr_len, hash_start = 0; - if (!ima_appraise) - return 0; if (!inode->i_op->getxattr) return INTEGRITY_UNKNOWN; @@ -202,8 +200,11 @@ int ima_appraise_measurement(int func, struct integrity_iint_cache *iint, goto out; cause = "missing-hash"; - status = - (inode->i_size == 0) ? INTEGRITY_PASS : INTEGRITY_NOLABEL; + status = INTEGRITY_NOLABEL; + if (opened & FILE_CREATED) { + iint->flags |= IMA_NEW_FILE; + status = INTEGRITY_PASS; + } goto out; } |