integrity_audit_msg() wraps integrity_audit_message() such that
error codes are hidden by passing an additional parameter to
integrity_audit_message(). Since this is a wrapper, we can replace
this function with integrity_audit_message() introduced in commit
2f845882ecd2 ("integrity: Add errno field in audit message")No functional change intended. Signed-off-by: Frederick Lawler <[email protected]> --- security/integrity/evm/evm_main.c | 38 ++++++++++++++++++------------- security/integrity/ima/ima_api.c | 20 ++++++++-------- security/integrity/ima/ima_appraise.c | 12 +++++----- security/integrity/ima/ima_fs.c | 11 +++++---- security/integrity/ima/ima_init.c | 4 ++-- security/integrity/ima/ima_main.c | 16 +++++++------ security/integrity/ima/ima_policy.c | 25 ++++++++++---------- security/integrity/ima/ima_queue.c | 4 ++-- security/integrity/ima/ima_template_lib.c | 6 ++--- 9 files changed, 73 insertions(+), 63 deletions(-) diff --git a/security/integrity/evm/evm_main.c b/security/integrity/evm/evm_main.c index b59e3f121b8a89edb14d811351ec393a69de8ff7..a32c98089b055fcf84f1a33dd016a51f57693d36 100644 --- a/security/integrity/evm/evm_main.c +++ b/security/integrity/evm/evm_main.c @@ -559,11 +559,11 @@ static int evm_protect_xattr(struct mnt_idmap *idmap, || dentry->d_sb->s_magic == SYSFS_MAGIC) return 0; - integrity_audit_msg(AUDIT_INTEGRITY_METADATA, - dentry->d_inode, dentry->d_name.name, - "update_metadata", - integrity_status_msg[evm_status], - -EPERM, 0); + integrity_audit_message(AUDIT_INTEGRITY_METADATA, + dentry->d_inode, dentry->d_name.name, + "update_metadata", + integrity_status_msg[evm_status], + -EPERM, 0, 0); } out: /* Exception if the HMAC is not going to be calculated. */ @@ -585,10 +585,12 @@ static int evm_protect_xattr(struct mnt_idmap *idmap, if (evm_status != INTEGRITY_PASS && evm_status != INTEGRITY_PASS_IMMUTABLE) - integrity_audit_msg(AUDIT_INTEGRITY_METADATA, d_backing_inode(dentry), - dentry->d_name.name, "appraise_metadata", - integrity_status_msg[evm_status], - -EPERM, 0); + integrity_audit_message(AUDIT_INTEGRITY_METADATA, + d_backing_inode(dentry), + dentry->d_name.name, + "appraise_metadata", + integrity_status_msg[evm_status], + -EPERM, 0, 0); return evm_status == INTEGRITY_PASS ? 0 : -EPERM; } @@ -726,10 +728,12 @@ static int evm_inode_set_acl(struct mnt_idmap *idmap, struct dentry *dentry, return 0; if (evm_status != INTEGRITY_PASS_IMMUTABLE) - integrity_audit_msg(AUDIT_INTEGRITY_METADATA, d_backing_inode(dentry), - dentry->d_name.name, "appraise_metadata", - integrity_status_msg[evm_status], - -EPERM, 0); + integrity_audit_message(AUDIT_INTEGRITY_METADATA, + d_backing_inode(dentry), + dentry->d_name.name, + "appraise_metadata", + integrity_status_msg[evm_status], + -EPERM, 0, 0); return -EPERM; } @@ -990,9 +994,11 @@ static int evm_inode_setattr(struct mnt_idmap *idmap, struct dentry *dentry, !evm_attr_change(idmap, dentry, attr)) return 0; - integrity_audit_msg(AUDIT_INTEGRITY_METADATA, d_backing_inode(dentry), - dentry->d_name.name, "appraise_metadata", - integrity_status_msg[evm_status], -EPERM, 0); + integrity_audit_message(AUDIT_INTEGRITY_METADATA, + d_backing_inode(dentry), dentry->d_name.name, + "appraise_metadata", + integrity_status_msg[evm_status], -EPERM, 0, + 0); return -EPERM; } diff --git a/security/integrity/ima/ima_api.c b/security/integrity/ima/ima_api.c index 122d127e108dcca8ddae6575c908144859783fb6..8c37dd4c9bb805213fb62e597a70189eca12b897 100644 --- a/security/integrity/ima/ima_api.c +++ b/security/integrity/ima/ima_api.c @@ -114,9 +114,9 @@ int ima_store_template(struct ima_template_entry *entry, result = ima_calc_field_array_hash(&entry->template_data[0], entry); if (result < 0) { - integrity_audit_msg(AUDIT_INTEGRITY_PCR, inode, - template_name, op, - audit_cause, result, 0); + integrity_audit_message(AUDIT_INTEGRITY_PCR, inode, + template_name, op, audit_cause, + result, 0, 0); return result; } } @@ -158,8 +158,8 @@ void ima_add_violation(struct file *file, const unsigned char *filename, if (result < 0) ima_free_template_entry(entry); err_out: - integrity_audit_msg(AUDIT_INTEGRITY_PCR, inode, filename, - op, cause, result, 0); + integrity_audit_message(AUDIT_INTEGRITY_PCR, inode, filename, op, + cause, result, 0, 0); } /** @@ -328,9 +328,9 @@ int ima_collect_measurement(struct ima_iint_cache *iint, struct file *file, take_dentry_name_snapshot(&filename, file->f_path.dentry); - integrity_audit_msg(AUDIT_INTEGRITY_DATA, inode, - filename.name.name, "collect_data", - audit_cause, result, 0); + integrity_audit_message(AUDIT_INTEGRITY_DATA, inode, + filename.name.name, "collect_data", + audit_cause, result, 0, 0); release_dentry_name_snapshot(&filename); } @@ -382,8 +382,8 @@ void ima_store_measurement(struct ima_iint_cache *iint, struct file *file, result = ima_alloc_init_template(&event_data, &entry, template_desc); if (result < 0) { - integrity_audit_msg(AUDIT_INTEGRITY_PCR, inode, filename, - op, audit_cause, result, 0); + integrity_audit_message(AUDIT_INTEGRITY_PCR, inode, filename, + op, audit_cause, result, 0, 0); return; } diff --git a/security/integrity/ima/ima_appraise.c b/security/integrity/ima/ima_appraise.c index 18d0d9154317b8efe9a806760f7e8eca75cca692..cc88e3add5b7028d4901e284ef920b324645e719 100644 --- a/security/integrity/ima/ima_appraise.c +++ b/security/integrity/ima/ima_appraise.c @@ -558,8 +558,8 @@ int ima_appraise_measurement(enum ima_hooks func, struct ima_iint_cache *iint, (iint->flags & IMA_FAIL_UNVERIFIABLE_SIGS))) { status = INTEGRITY_FAIL; cause = "unverifiable-signature"; - integrity_audit_msg(audit_msgno, inode, filename, - op, cause, rc, 0); + integrity_audit_message(audit_msgno, inode, filename, + op, cause, rc, 0, 0); } else if (status != INTEGRITY_PASS) { /* Fix mode, but don't replace file signatures. */ if ((ima_appraise & IMA_APPRAISE_FIX) && !try_modsig && @@ -583,8 +583,8 @@ int ima_appraise_measurement(enum ima_hooks func, struct ima_iint_cache *iint, status = INTEGRITY_PASS; } - integrity_audit_msg(audit_msgno, inode, filename, - op, cause, rc, 0); + integrity_audit_message(audit_msgno, inode, filename, + op, cause, rc, 0, 0); } else { ima_cache_flags(iint, func); } @@ -744,8 +744,8 @@ static int validate_hash_algo(struct dentry *dentry, path = dentry_path(dentry, pathbuf, PATH_MAX); - integrity_audit_msg(AUDIT_INTEGRITY_DATA, d_inode(dentry), path, - "set_data", errmsg, -EACCES, 0); + integrity_audit_message(AUDIT_INTEGRITY_DATA, d_inode(dentry), path, + "set_data", errmsg, -EACCES, 0, 0); kfree(pathbuf); diff --git a/security/integrity/ima/ima_fs.c b/security/integrity/ima/ima_fs.c index 2a0bca5543161912abe2a0236c9fcae7055e62bc..a0c1a6dd6a750220b529cc3f77c2ae5673188e11 100644 --- a/security/integrity/ima/ima_fs.c +++ b/security/integrity/ima/ima_fs.c @@ -593,9 +593,10 @@ static ssize_t ima_write_policy(struct file *file, const char __user *buf, result = ima_read_policy(data); } else if (ima_appraise & IMA_APPRAISE_POLICY) { pr_err("signed policy file (specified as an absolute pathname) required\n"); - integrity_audit_msg(AUDIT_INTEGRITY_STATUS, NULL, NULL, - "policy_update", "signed policy required", - 1, 0); + integrity_audit_message(AUDIT_INTEGRITY_STATUS, NULL, NULL, + "policy_update", + "signed policy required", + result, 0, 0); result = -EACCES; } else { ima_measure_raw_policy(data, datalen); @@ -744,8 +745,8 @@ static int ima_release_policy(struct inode *inode, struct file *file) } pr_info("policy update %s\n", cause); - integrity_audit_msg(AUDIT_INTEGRITY_STATUS, NULL, NULL, - "policy_update", cause, !valid_policy, 0); + integrity_audit_message(AUDIT_INTEGRITY_STATUS, NULL, NULL, + "policy_update", cause, !valid_policy, 0, 0); if (!valid_policy) { ima_delete_rules(); diff --git a/security/integrity/ima/ima_init.c b/security/integrity/ima/ima_init.c index d53f4d89a53e56d7ebb31950c10b37fc89782753..def350f7d6a0c58f119f2c74f26ea365471fb1c7 100644 --- a/security/integrity/ima/ima_init.c +++ b/security/integrity/ima/ima_init.c @@ -102,8 +102,8 @@ static int __init ima_add_boot_aggregate(void) } return 0; err_out: - integrity_audit_msg(AUDIT_INTEGRITY_PCR, NULL, filename, op, - audit_cause, result, 0); + integrity_audit_message(AUDIT_INTEGRITY_PCR, NULL, filename, op, + audit_cause, result, 0, 0); return result; } diff --git a/security/integrity/ima/ima_main.c b/security/integrity/ima/ima_main.c index 334e21be407547cedfacce2a0b23cdb222192019..22d649fa19b334674b8e81dd537033cebf569699 100644 --- a/security/integrity/ima/ima_main.c +++ b/security/integrity/ima/ima_main.c @@ -118,8 +118,9 @@ static int mmap_violation_check(enum ima_hooks func, struct file *file, if (!*pathbuf) /* ima_rdwr_violation possibly pre-fetched */ *pathname = ima_d_path(&file->f_path, pathbuf, filename); - integrity_audit_msg(AUDIT_INTEGRITY_DATA, inode, *pathname, - "mmap_file", "mmapped_writers", rc, 0); + integrity_audit_message(AUDIT_INTEGRITY_DATA, inode, *pathname, + "mmap_file", "mmapped_writers", rc, 0, + 0); } return rc; } @@ -464,9 +465,9 @@ static int process_measurement(struct file *file, const struct cred *cred, (allowed_algos & (1U << hash_algo)) == 0) { rc = -EACCES; - integrity_audit_msg(AUDIT_INTEGRITY_DATA, file_inode(file), - pathname, "collect_data", - "denied-hash-algorithm", rc, 0); + integrity_audit_message(AUDIT_INTEGRITY_DATA, file_inode(file), + pathname, "collect_data", + "denied-hash-algorithm", rc, 0, 0); } out_locked: if ((mask & MAY_WRITE) && test_bit(IMA_DIGSIG, &iint->atomic_flags) && @@ -578,8 +579,9 @@ static int ima_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot, file = vma->vm_file; pathname = ima_d_path(&file->f_path, &pathbuf, filename); - integrity_audit_msg(AUDIT_INTEGRITY_DATA, inode, pathname, - "collect_data", "failed-mprotect", result, 0); + integrity_audit_message(AUDIT_INTEGRITY_DATA, inode, pathname, + "collect_data", "failed-mprotect", result, 0, + 0); if (pathbuf) __putname(pathbuf); diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/ima_policy.c index f79d07bb63c6fc4ba6fe594140de8d59f57e4f0b..4f0ebc02de4eb4cf48633f3e87362a20ece3a689 100644 --- a/security/integrity/ima/ima_policy.c +++ b/security/integrity/ima/ima_policy.c @@ -1986,8 +1986,9 @@ ssize_t ima_parse_add_rule(char *rule) entry = kzalloc_obj(*entry); if (!entry) { - integrity_audit_msg(AUDIT_INTEGRITY_STATUS, NULL, - NULL, op, "-ENOMEM", -ENOMEM, audit_info); + integrity_audit_message(AUDIT_INTEGRITY_STATUS, NULL, + NULL, op, "-ENOMEM", -ENOMEM, + audit_info, 0); return -ENOMEM; } @@ -1996,9 +1997,9 @@ ssize_t ima_parse_add_rule(char *rule) result = ima_parse_rule(p, entry); if (result) { ima_free_rule(entry); - integrity_audit_msg(AUDIT_INTEGRITY_STATUS, NULL, - NULL, op, "invalid-policy", result, - audit_info); + integrity_audit_message(AUDIT_INTEGRITY_STATUS, NULL, + NULL, op, "invalid-policy", result, + audit_info, 0); return result; } @@ -2415,8 +2416,8 @@ void ima_measure_loaded_policy(void) rule = kmalloc(rule_len, GFP_KERNEL); if (!rule) { - integrity_audit_msg(AUDIT_INTEGRITY_PCR, NULL, event_name, - op, "ENOMEM", result, 0); + integrity_audit_message(AUDIT_INTEGRITY_PCR, NULL, event_name, + op, "ENOMEM", result, 0, 0); return; } @@ -2433,9 +2434,9 @@ void ima_measure_loaded_policy(void) if (seq_has_overflowed(&file)) { result = -E2BIG; - integrity_audit_msg(AUDIT_INTEGRITY_PCR, NULL, - event_name, op, "rule_length", - result, 0); + integrity_audit_message(AUDIT_INTEGRITY_PCR, NULL, + event_name, op, "rule_length", + result, 0, 0); rcu_read_unlock(); goto free_rule; } @@ -2448,8 +2449,8 @@ void ima_measure_loaded_policy(void) /* copy IMA policy rules to a buffer for measuring */ file.buf = kmalloc(file_len, GFP_KERNEL); if (!file.buf) { - integrity_audit_msg(AUDIT_INTEGRITY_PCR, NULL, event_name, - op, "ENOMEM", result, 0); + integrity_audit_message(AUDIT_INTEGRITY_PCR, NULL, event_name, + op, "ENOMEM", result, 0, 0); goto free_rule; } diff --git a/security/integrity/ima/ima_queue.c b/security/integrity/ima/ima_queue.c index f89f0ca3d4edf16a7147b3c23d25fc2cf18044c6..e7b4df6b2ca299c38976012ac6eaaffcc5100e51 100644 --- a/security/integrity/ima/ima_queue.c +++ b/security/integrity/ima/ima_queue.c @@ -291,8 +291,8 @@ int ima_add_template_entry(struct ima_template_entry *entry, int violation, } out: mutex_unlock(&ima_extend_list_mutex); - integrity_audit_msg(AUDIT_INTEGRITY_PCR, inode, filename, - op, audit_cause, result, audit_info); + integrity_audit_message(AUDIT_INTEGRITY_PCR, inode, filename, op, + audit_cause, result, audit_info, 0); return result; } diff --git a/security/integrity/ima/ima_template_lib.c b/security/integrity/ima/ima_template_lib.c index 8a89236f926c10af0dd2b2ef08fbe59bd8a78b66..c87dcbe67820266149da6ad7d4f2f7061ff3c5c1 100644 --- a/security/integrity/ima/ima_template_lib.c +++ b/security/integrity/ima/ima_template_lib.c @@ -390,9 +390,9 @@ int ima_eventdigest_init(struct ima_event_data *event_data, ima_hash_algo : HASH_ALGO_SHA1; result = ima_calc_file_hash(event_data->file, hash_hdr); if (result) { - integrity_audit_msg(AUDIT_INTEGRITY_DATA, inode, - event_data->filename, "collect_data", - "failed", result, 0); + integrity_audit_message(AUDIT_INTEGRITY_DATA, inode, + event_data->filename, "collect_data", + "failed", result, 0, 0); return result; } cur_digest = hash_hdr->digest; -- 2.43.0

