From nobody Fri Sep 25 04:07:25 2026 Received: from mail-oo2-f11.google.com (mail-oo2-f11.google.com [74.125.231.139]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6D7EC48C8B9 for ; Wed, 16 Sep 2026 21:36:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.231.139 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789594623; cv=none; b=ZxkpbtVYQCM6klgMEsM1hXfkcTwN9U3zPNCetHOrQEqWGwwktwqAC92GrBXLIyD0SYTNuxdQbeQyFYbG4KLeMe//Uk74m85ZZnJ5LS04xV3RaCQZyVVEZ+1EQO3z1ZNY7G6vX0qw22uMuDU6gUoXJ9h4LAx1sMtYle7Pu66iM20= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789594623; c=relaxed/simple; bh=RL6d5yJ4xvBQVtGW2C14rmIuGcHh9YfAg4SyplggSlY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=czTHX/kN7OeBbLcsmlx9LOaKSXMguI2Jlab6c3/uRWMj96QhHQyjfPfMsieuBshwatAiYo/YDM2L9xs/xP/jLDCCB+zG10jkeDofeiv2NGeJFRAFq/SwC6JsQ9O/6Dz364nUyMHqX9Lmi/YmOk/P2NAutdyxGh5vKxo00gBp/ps= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=cloudflare.com; spf=pass smtp.mailfrom=cloudflare.com; dkim=pass (2048-bit key) header.d=cloudflare.com header.i=@cloudflare.com header.b=d5kvQoHc; arc=none smtp.client-ip=74.125.231.139 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=cloudflare.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=cloudflare.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=cloudflare.com header.i=@cloudflare.com header.b="d5kvQoHc" Received: by mail-oo2-f11.google.com with SMTP id 006d021491bc7-6aaf6076546so52171eaf.1 for ; Wed, 16 Sep 2026 14:36:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloudflare.com; s=google09082023; t=1789594610; x=1790199410; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=7Ib5zIg2tnxSHGaebhRb862QbIfTb5vHZO64N2/hUdQ=; b=d5kvQoHc9y+uNmyuMPQ3B23qZVj/xl++y1w2nojuHcPLBMIwp93hnWvfZNfs7WhHlV mVL25r9vaqqWld5kaxMTafhn7pmDLNYFyJNSWm5SrfjsIwqpZdlKmdL2kmH3OhMp3etG K5xKfuVHVVTrMVRh3hqZsBYPTpMNIXMnEDcz01pEdUKwoCxJdc+Tu90EDXiCjZF+wRfj gOxj2aCkUP9CRHnKxl+SAnmYNWYDhh2zSbUqqsYNPqf3chYvriOSgnv95F99pDNRSkLG av3y7FNGf0XqkWH/ENXU5xAPpcq0DwVf/vi7chcHAsDkwsXEU81HFdn4FR0NWZHbK3W8 whfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789594610; x=1790199410; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=7Ib5zIg2tnxSHGaebhRb862QbIfTb5vHZO64N2/hUdQ=; b=YgNw53vEDsFaZLJt4JBEyPvSLuSS8h1w+XQthSE9nFvzruMtviO6WC5jiSL6zSlIa5 9loXTPduMvQJ1fUU+buUQN1MqcB8lftg9CJ8M4qJbhtSYyljhG5po+aglHB7MY0bVbxN CQnGQkAas4dO4U8IVw6+9WUWzTBLG+oMZdnLWW4B+rNvltz/DsEWR6rCJuJQSc2+hf0O NHjLGcvNmD+Zf9szcsrzjMuW14AJ6skoTaytcLoh7PdYc4FysEiPD+K14TY5CCYV2SBU LgrovQevgSBcEMsf2zOh8OaHmJmKqV4A37Zt8WTLSK3ckuxOWhCgI8AjCooelAxfQOR5 ptkg== X-Forwarded-Encrypted: i=1; AKwUvBxqXQQVrghBMAX27sjPiJ8eQA8cUfscvWjwygfYCwZrYJQBJOhpbA7UsLEGPKlBzOZtSCnDWRw3z5x9OnA=@vger.kernel.org X-Gm-Message-State: AFuF++kiua6P37MfskqZ5pHxW8T2OK0saXtESwXiutC7tIq5TME3Muvn bCIIXLrpFhEGZses8DHuFDbnWngg9yn1y74JnpHH1yKVXMgI8qCrH+yA7uTpNzfNEl3dyctni+R 4dfdS6tP1cm3A X-Gm-Gg: AYBFou3o04JuY9PtXUMfjXc2fT62xuxJ7hyfxTYx6FMvwYJD+lLpDpYtNKFfFocaXsQ yTWT+K++3syTLq99h47hM4FLmwf1umqdt50EilAl3VJDmy4gropqc+bH41VEQbyAV9dhO1Anj4n SRfsOcqsdTUsUGQv5mhiNU3gyTXLQ3RRgcNy1gQI1hQaU3gNtjGG2OzqF/ecTeMjwqBhamlyBz/ w6TrN5uf4hJdo3FUaJQTWDkUjKmIAv62jJ3EWvGv+0sU7dAV39srNRFSzXibJjmAgFYrX5uHtqd aQjhDMEfLTotLQA1WZy8CthdH/BHYb16EiiY3OD/At1ri5OQRMDgcHtMIkJwuGO4MjmWL3OffGD 9u58yjOYDED6xDExSuCLKyCnRq6xp0Sp4PuuLPBpD4ZX+4/u8As0LGrBGaqwZTkOeXtfN0kMHH5 gAYmnF41mGcgVSpunSDdMH5aM4H2gzyfKdZmCJ4foi1cUl+aqCTIJRvj9WH/tnwkcfv/Ko X-Received: by 2002:a05:6820:4b85:b0:6c2:6f93:389f with SMTP id 006d021491bc7-6c7d3ee590amr4801414eaf.37.1789594610117; Wed, 16 Sep 2026 14:36:50 -0700 (PDT) Received: from [127.0.1.1] ([2a09:bac6:947f:31f5::4fa:4b]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4842a23e310sm3387557fac.12.2026.09.16.14.36.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 14:36:48 -0700 (PDT) From: Frederick Lawler Date: Wed, 16 Sep 2026 16:36:37 -0500 Subject: [PATCH v3 1/2] integrity: Report error code in integrity_audit_msg() call sites Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260916-report-hash-error-v3-1-73e5d95e9efe@cloudflare.com> References: <20260916-report-hash-error-v3-0-73e5d95e9efe@cloudflare.com> In-Reply-To: <20260916-report-hash-error-v3-0-73e5d95e9efe@cloudflare.com> To: Mimi Zohar , Roberto Sassu , Dmitry Kasatkin , Eric Snowberg , Paul Moore , James Morris , "Serge E. Hallyn" Cc: linux-integrity@vger.kernel.org, linux-security-module@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@cloudflare.com, Frederick Lawler X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=13219; i=fred@cloudflare.com; h=from:subject:message-id; bh=RL6d5yJ4xvBQVtGW2C14rmIuGcHh9YfAg4SyplggSlY=; b=owEBbQKS/ZANAwAKAasltHYDktNtAcsmYgBqqwvqu4hysntayZHQPkWEgBw9J7yFxXp6nn6rq iCj6kme4fWJAjMEAAEKAB0WIQTLNBqMVmu1PHvjOe2rJbR2A5LTbQUCaqsL6gAKCRCrJbR2A5LT bfhUEACROyLNm0fsVvUnDVxc07m+lEvRMUb0jcMLxhV/vOwcAWf5+6s/chdh2Wk8crwREtr81FR 4vmuUbj8ukf9hUHWpV3LuZ926SQhbAgvudoPU8cG9e9BjQB5qelIZCzTABwXzF30KV4jPIvmyjz ivJ2Ce5F+Sl8wPAb3lLuMZD145qAuB20B/1IagG35+GH9y4MxPSkL86d6UeYiNxgjzv85OUswuJ JnS9RJOidkCWkUkwDuFeZmmV1fhxpdwcHtPnxo3ri/JdUWaL42+dIz3v2mpvliweM2LDtWOD2o2 Q5/TCcCCd4y09RW98FO+EnT++2nUmyPZx4pgj7tVXfsPdj92qqOfMFFt1QgdzwnCWWh8fKBsIgV SYPSCYgVRDYd7JpBhisKoJhf833eR++rI8YM3xeQ18jq5eAalPra6IdK6W5tBiR8mBttTMrYpOY stGr8Vv520mpmVROrszmr+AKOCE0PN5o1GOk8UiqStsH7ghXsqxII1wVkAp/xRBIceUmdkJdh4x 2E5rWZgEmYAlRWyIOMF8+95QNWF9nkvTSsZa+jj/A7QwIZUJIEHBHrplzofxkQArJHFaXQlSIMi rk9DGCf3Sktk36ohoIAOSX8aeqdkyyyuimpUqh4SitwqPJLMIGUPky51S7HcDGx9N2Fr6V6wavQ Pf7m8Tbq20nYC9A== X-Developer-Key: i=fred@cloudflare.com; a=openpgp; fpr=CB341A8C566BB53C7BE339EDAB25B4760392D36D integrity_audit_msg() hides error codes by wrapping integrity_audit_message() which obfuscates the underlying reason for the failure. Update integrity_audit_msg() call sites to take an error code and report errors the same as integrity_audit_message(). Signed-off-by: Frederick Lawler --- security/integrity/evm/evm_main.c | 9 +++++---- security/integrity/ima/ima_api.c | 8 ++++---- security/integrity/ima/ima_appraise.c | 6 +++--- security/integrity/ima/ima_fs.c | 4 ++-- security/integrity/ima/ima_init.c | 2 +- security/integrity/ima/ima_main.c | 7 ++++--- security/integrity/ima/ima_policy.c | 11 ++++++----- security/integrity/ima/ima_queue.c | 2 +- security/integrity/ima/ima_template_lib.c | 2 +- security/integrity/integrity.h | 5 +++-- security/integrity/integrity_audit.c | 5 +++-- 11 files changed, 33 insertions(+), 28 deletions(-) diff --git a/security/integrity/evm/evm_main.c b/security/integrity/evm/evm= _main.c index b59e3f121b8a89edb14d811351ec393a69de8ff7..5be9349afcd09b47b78d1126ffc= 1fe341264ae6e 100644 --- a/security/integrity/evm/evm_main.c +++ b/security/integrity/evm/evm_main.c @@ -563,7 +563,7 @@ static int evm_protect_xattr(struct mnt_idmap *idmap, dentry->d_inode, dentry->d_name.name, "update_metadata", integrity_status_msg[evm_status], - -EPERM, 0); + -EPERM, 0, -EPERM); } out: /* Exception if the HMAC is not going to be calculated. */ @@ -588,7 +588,7 @@ static int evm_protect_xattr(struct mnt_idmap *idmap, integrity_audit_msg(AUDIT_INTEGRITY_METADATA, d_backing_inode(dentry), dentry->d_name.name, "appraise_metadata", integrity_status_msg[evm_status], - -EPERM, 0); + -EPERM, 0, -EPERM); return evm_status =3D=3D INTEGRITY_PASS ? 0 : -EPERM; } =20 @@ -729,7 +729,7 @@ static int evm_inode_set_acl(struct mnt_idmap *idmap, s= truct dentry *dentry, integrity_audit_msg(AUDIT_INTEGRITY_METADATA, d_backing_inode(dentry), dentry->d_name.name, "appraise_metadata", integrity_status_msg[evm_status], - -EPERM, 0); + -EPERM, 0, -EPERM); return -EPERM; } =20 @@ -992,7 +992,8 @@ static int evm_inode_setattr(struct mnt_idmap *idmap, s= truct dentry *dentry, =20 integrity_audit_msg(AUDIT_INTEGRITY_METADATA, d_backing_inode(dentry), dentry->d_name.name, "appraise_metadata", - integrity_status_msg[evm_status], -EPERM, 0); + integrity_status_msg[evm_status], -EPERM, 0, + -EPERM); return -EPERM; } =20 diff --git a/security/integrity/ima/ima_api.c b/security/integrity/ima/ima_= api.c index 122d127e108dcca8ddae6575c908144859783fb6..f765bfe5db68d0847cfe5b47f81= b64018083f65a 100644 --- a/security/integrity/ima/ima_api.c +++ b/security/integrity/ima/ima_api.c @@ -116,7 +116,7 @@ int ima_store_template(struct ima_template_entry *entry, if (result < 0) { integrity_audit_msg(AUDIT_INTEGRITY_PCR, inode, template_name, op, - audit_cause, result, 0); + audit_cause, result, 0, result); return result; } } @@ -159,7 +159,7 @@ void ima_add_violation(struct file *file, const unsigne= d char *filename, ima_free_template_entry(entry); err_out: integrity_audit_msg(AUDIT_INTEGRITY_PCR, inode, filename, - op, cause, result, 0); + op, cause, result, 0, result); } =20 /** @@ -330,7 +330,7 @@ int ima_collect_measurement(struct ima_iint_cache *iint= , struct file *file, =20 integrity_audit_msg(AUDIT_INTEGRITY_DATA, inode, filename.name.name, "collect_data", - audit_cause, result, 0); + audit_cause, result, 0, result); =20 release_dentry_name_snapshot(&filename); } @@ -383,7 +383,7 @@ void ima_store_measurement(struct ima_iint_cache *iint,= struct file *file, result =3D 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); + op, audit_cause, result, 0, result); return; } =20 diff --git a/security/integrity/ima/ima_appraise.c b/security/integrity/ima= /ima_appraise.c index b280488e15fcb0b6f8a8a0caaab93c7d511e4a40..6dc712f430f44ee18c3418a6bf4= cd4da49758b98 100644 --- a/security/integrity/ima/ima_appraise.c +++ b/security/integrity/ima/ima_appraise.c @@ -564,7 +564,7 @@ int ima_appraise_measurement(enum ima_hooks func, struc= t ima_iint_cache *iint, status =3D INTEGRITY_FAIL; cause =3D "unverifiable-signature"; integrity_audit_msg(audit_msgno, inode, filename, - op, cause, rc, 0); + op, cause, rc, 0, rc); } else if (status !=3D INTEGRITY_PASS) { /* Fix mode, but don't replace file signatures. */ if ((ima_appraise & IMA_APPRAISE_FIX) && !try_modsig && @@ -589,7 +589,7 @@ int ima_appraise_measurement(enum ima_hooks func, struc= t ima_iint_cache *iint, } =20 integrity_audit_msg(audit_msgno, inode, filename, - op, cause, rc, 0); + op, cause, rc, 0, rc); } else { ima_cache_flags(iint, func); } @@ -752,7 +752,7 @@ static int validate_hash_algo(struct dentry *dentry, path =3D NULL; =20 integrity_audit_msg(AUDIT_INTEGRITY_DATA, d_inode(dentry), path, - "set_data", errmsg, -EACCES, 0); + "set_data", errmsg, -EACCES, 0, -EACCES); =20 kfree(pathbuf); =20 diff --git a/security/integrity/ima/ima_fs.c b/security/integrity/ima/ima_f= s.c index 2a0bca5543161912abe2a0236c9fcae7055e62bc..6d2ef44b21f8d40b4981a6a441c= f7c3d69f94dee 100644 --- a/security/integrity/ima/ima_fs.c +++ b/security/integrity/ima/ima_fs.c @@ -595,7 +595,7 @@ static ssize_t ima_write_policy(struct file *file, cons= t char __user *buf, 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); + 1, 0, -EINVAL); result =3D -EACCES; } else { ima_measure_raw_policy(data, datalen); @@ -745,7 +745,7 @@ static int ima_release_policy(struct inode *inode, stru= ct file *file) =20 pr_info("policy update %s\n", cause); integrity_audit_msg(AUDIT_INTEGRITY_STATUS, NULL, NULL, - "policy_update", cause, !valid_policy, 0); + "policy_update", cause, !valid_policy, 0, 0); =20 if (!valid_policy) { ima_delete_rules(); diff --git a/security/integrity/ima/ima_init.c b/security/integrity/ima/ima= _init.c index d53f4d89a53e56d7ebb31950c10b37fc89782753..7a76e2686267482b10bf854a768= 29c60ef9f1e1b 100644 --- a/security/integrity/ima/ima_init.c +++ b/security/integrity/ima/ima_init.c @@ -103,7 +103,7 @@ 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); + audit_cause, result, 0, result); return result; } =20 diff --git a/security/integrity/ima/ima_main.c b/security/integrity/ima/ima= _main.c index ab1e53b3210d3a4d3f91d65f7db19e6a2a2d401c..9e80f40680d7be08d14d26ba48e= d334d4e4ab10c 100644 --- a/security/integrity/ima/ima_main.c +++ b/security/integrity/ima/ima_main.c @@ -119,7 +119,7 @@ static int mmap_violation_check(enum ima_hooks func, st= ruct file *file, *pathname =3D ima_d_path(&file->f_path, pathbuf, filename); integrity_audit_msg(AUDIT_INTEGRITY_DATA, inode, *pathname, - "mmap_file", "mmapped_writers", rc, 0); + "mmap_file", "mmapped_writers", rc, 0, rc); } return rc; } @@ -466,7 +466,7 @@ static int process_measurement(struct file *file, const= struct cred *cred, =20 integrity_audit_msg(AUDIT_INTEGRITY_DATA, file_inode(file), pathname, "collect_data", - "denied-hash-algorithm", rc, 0); + "denied-hash-algorithm", rc, 0, rc); } out_locked: if ((mask & MAY_WRITE) && test_bit(IMA_DIGSIG, &iint->atomic_flags) && @@ -579,7 +579,8 @@ static int ima_file_mprotect(struct vm_area_struct *vma= , unsigned long reqprot, file =3D vma->vm_file; pathname =3D ima_d_path(&file->f_path, &pathbuf, filename); integrity_audit_msg(AUDIT_INTEGRITY_DATA, inode, pathname, - "collect_data", "failed-mprotect", result, 0); + "collect_data", "failed-mprotect", result, 0, + result); if (pathbuf) __putname(pathbuf); =20 diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/i= ma_policy.c index 68d9a5e6c232ea0678e9f51f105cebecccccb43e..9013c962dc0bfd6184948230ad6= 746e71f6e82f5 100644 --- a/security/integrity/ima/ima_policy.c +++ b/security/integrity/ima/ima_policy.c @@ -1992,7 +1992,8 @@ ssize_t ima_parse_add_rule(char *rule) entry =3D kzalloc_obj(*entry); if (!entry) { integrity_audit_msg(AUDIT_INTEGRITY_STATUS, NULL, - NULL, op, "-ENOMEM", -ENOMEM, audit_info); + NULL, op, "-ENOMEM", -ENOMEM, audit_info, + -ENOMEM); return -ENOMEM; } =20 @@ -2003,7 +2004,7 @@ ssize_t ima_parse_add_rule(char *rule) ima_free_rule(entry); integrity_audit_msg(AUDIT_INTEGRITY_STATUS, NULL, NULL, op, "invalid-policy", result, - audit_info); + audit_info, result); return result; } =20 @@ -2421,7 +2422,7 @@ void ima_measure_loaded_policy(void) rule =3D kmalloc(rule_len, GFP_KERNEL); if (!rule) { integrity_audit_msg(AUDIT_INTEGRITY_PCR, NULL, event_name, - op, "ENOMEM", result, 0); + op, "ENOMEM", result, 0, result); return; } =20 @@ -2440,7 +2441,7 @@ void ima_measure_loaded_policy(void) result =3D -E2BIG; integrity_audit_msg(AUDIT_INTEGRITY_PCR, NULL, event_name, op, "rule_length", - result, 0); + result, 0, result); rcu_read_unlock(); goto free_rule; } @@ -2454,7 +2455,7 @@ void ima_measure_loaded_policy(void) file.buf =3D kmalloc(file_len, GFP_KERNEL); if (!file.buf) { integrity_audit_msg(AUDIT_INTEGRITY_PCR, NULL, event_name, - op, "ENOMEM", result, 0); + op, "ENOMEM", result, 0, result); goto free_rule; } =20 diff --git a/security/integrity/ima/ima_queue.c b/security/integrity/ima/im= a_queue.c index f89f0ca3d4edf16a7147b3c23d25fc2cf18044c6..8d3282ff7da4131ae4389bf8324= 42285e500542d 100644 --- a/security/integrity/ima/ima_queue.c +++ b/security/integrity/ima/ima_queue.c @@ -292,7 +292,7 @@ int ima_add_template_entry(struct ima_template_entry *e= ntry, int violation, out: mutex_unlock(&ima_extend_list_mutex); integrity_audit_msg(AUDIT_INTEGRITY_PCR, inode, filename, - op, audit_cause, result, audit_info); + op, audit_cause, result, audit_info, result); return result; } =20 diff --git a/security/integrity/ima/ima_template_lib.c b/security/integrity= /ima/ima_template_lib.c index 8a89236f926c10af0dd2b2ef08fbe59bd8a78b66..9bd80ca1159a2fe24b3ea3308a1= 18f6beea733cb 100644 --- a/security/integrity/ima/ima_template_lib.c +++ b/security/integrity/ima/ima_template_lib.c @@ -392,7 +392,7 @@ int ima_eventdigest_init(struct ima_event_data *event_d= ata, if (result) { integrity_audit_msg(AUDIT_INTEGRITY_DATA, inode, event_data->filename, "collect_data", - "failed", result, 0); + "failed", result, 0, result); return result; } cur_digest =3D hash_hdr->digest; diff --git a/security/integrity/integrity.h b/security/integrity/integrity.h index 0c581c03c5da72d80e9c352a7adff1fb89628644..2ab6b7e34e7ee2dd29ae03ae1fb= 45fa26d9c032a 100644 --- a/security/integrity/integrity.h +++ b/security/integrity/integrity.h @@ -218,7 +218,8 @@ static inline void evm_load_x509(void) /* declarations */ void integrity_audit_msg(int audit_msgno, struct inode *inode, const unsigned char *fname, const char *op, - const char *cause, int result, int info); + const char *cause, int result, int info, + int errno); =20 void integrity_audit_message(int audit_msgno, struct inode *inode, const unsigned char *fname, const char *op, @@ -235,7 +236,7 @@ integrity_audit_log_start(struct audit_context *ctx, gf= p_t gfp_mask, int type) static inline void integrity_audit_msg(int audit_msgno, struct inode *inod= e, const unsigned char *fname, const char *op, const char *cause, - int result, int info) + int result, int info, int errno) { } =20 diff --git a/security/integrity/integrity_audit.c b/security/integrity/inte= grity_audit.c index d8d9e5ff1cd22b091f462d1e83d28d2d6bd983e9..2dd2d7e3916e7bf35c753450315= ff22e2d0292b7 100644 --- a/security/integrity/integrity_audit.c +++ b/security/integrity/integrity_audit.c @@ -27,10 +27,11 @@ __setup("integrity_audit=3D", integrity_audit_setup); =20 void integrity_audit_msg(int audit_msgno, struct inode *inode, const unsigned char *fname, const char *op, - const char *cause, int result, int audit_info) + const char *cause, int result, int audit_info, + int errno) { integrity_audit_message(audit_msgno, inode, fname, op, cause, - result, audit_info, 0); + result, audit_info, errno); } =20 void integrity_audit_message(int audit_msgno, struct inode *inode, --=20 2.43.0 From nobody Fri Sep 25 04:07:25 2026 Received: from mail-oa2-f12.google.com (mail-oa2-f12.google.com [74.125.231.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E46B490BF7 for ; Wed, 16 Sep 2026 21:36:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.231.76 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789594628; cv=none; b=eg5pXGgYpOTIQ38HAQ5SFP7lQvUNDbbqZ3R3Q4SxB+LUZsXiQrKLf23gy6H8NvVZ1eApNsWfjg8ak4XMhMntKj22NXXTRpmfPfXQRa4Vxq7/JTCp/SmrBwNSnxUWgW6e3yhATO48OW1ThDTrE8kOVlrSOIMtNCYMgbOmRZ6HJ1w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789594628; c=relaxed/simple; bh=z2tQHhAwEFt+agCaRWeVzBR9XVTRt1GIp8bQCvmiYuk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=PKQIst/BN0gpnMvnZ+wY02Q0i325KuGRPoiMdycROYpnycXdHyxOZMEOwhos+Oebgu+1MJ+E7rkU3Makyc1UphltlO7qtht1Ultx2J/QGvAWEIXNO5ro4EAbOLiyGxhAXoQVAXDzXhSqTgqVapzjDN2sV2XhuA857W3eXPJLDNY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=cloudflare.com; spf=pass smtp.mailfrom=cloudflare.com; dkim=pass (2048-bit key) header.d=cloudflare.com header.i=@cloudflare.com header.b=EA81dlCD; arc=none smtp.client-ip=74.125.231.76 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=cloudflare.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=cloudflare.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=cloudflare.com header.i=@cloudflare.com header.b="EA81dlCD" Received: by mail-oa2-f12.google.com with SMTP id 586e51a60fabf-469fdb78b1cso83594fac.0 for ; Wed, 16 Sep 2026 14:36:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloudflare.com; s=google09082023; t=1789594613; x=1790199413; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=jhuOR/yTpkseeAWrvSpKFTY7Og9vlkZJ0CujlTEe3/8=; b=EA81dlCDWK8Brg7yFLt12E8nZlqjwrkN0YEPpAojkNirkQk13Y9EBI8WkR5wMuziOn J8PpG7hJn/L8j6WmijRAO6sk+rbNKqmXZtKJBS6VhM4TP9N5WXGrHvRaTGmydE2VgwDS OaeLEKKULlqA19YKFhlEEUdIx2+cUr3TUXyGivcSng8lCnUT6cXJtyg6goStQi8X2chj CzSy953u9/uyHqrpMumPFqGLQgdwU+LxIIiyRVB2WSkT1OwddN//BnZ4o802EtXzjv/S Q3veP9F/7urB38Ozg8Yb6Lhy+2YVoH8NVVytMxhAafS/6CMYAnUBxrnaNaNEXuOrf4Bo mHZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789594613; x=1790199413; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=jhuOR/yTpkseeAWrvSpKFTY7Og9vlkZJ0CujlTEe3/8=; b=0/25u4UvePcgvc6MEobCbBpCouuCcnvJ/Vk+2+jsGU9j9CJKYjyxPFR3w1Uvm6dlNZ Z0r2GQyh0+W7BDLjVs59trmtj2dgS5R/G7ygXjhQlBHSXi+CER/Yxp7kfryYgy5YI5Am Nfd2EX0Gx2bOtK3bH63Y8zpkEcOECtcZRrvlrLF+oskWuMV/1B8NltRwXRF6wum8TjAi p0vI6LOr5KyzoohUVUSI89FbtvlGrSQjOLcOSzx1ohntiDEMp26y+iPXAE1y3m5Y3HvS c5TivIxhxfYJy/2kjO/h9DneTcwTxeIzxA6HYzj/0g3/k5wdt83aLrc1tT6Iu+xNHt0V C1Nw== X-Forwarded-Encrypted: i=1; AKwUvBzX2GtSrwRwhYemUTENSWpxWqZm+VlCbKuhHuXM88w+aoS4HKJIH+6PJieIHST9Om3maPT1usftYD3g0K4=@vger.kernel.org X-Gm-Message-State: AFuF++msW8R+vK98TB+m4MgWohWKEpOnrbXvIwa2ojf4OpUwigGcI4D5 0aMQvrazAd7q7CaZuRMb9HQm48mE5bzS6ISCYVf1PLuZnyIHRw39tHcbuv7XNDLrK8U= X-Gm-Gg: AYBFou0I1ygrZnIa95pYosk6a2LsTHQ0POmcepr5lAFgXovcgOHxnUVYBe6lzfEuXs2 dumsZyrlQCZTSqxUpksfFGQ+xprMNcONzMySEkA25zUxxM9fIwputqEReK8HQqpJwc75oYhN55c rFCnPDhfhOep5lFKpkYq1M+SfZdHlUXKQXFT33e2qBMLp8UnEtDqYGRRpkT8OYJ1Wqln114hAAh ygFKZBcgCSw5GPZsl4CojAoys9Cm9U7thw1keSE4BEYzHeSy/PJxQNp85WSPqg6YGaU8Ph5WCKh ba9doqhXNLI5j+cfPwhKah9BFJ2TVP0uDZFYESOtnNAGGAvLZ3ZQyWyIV0vWjHPJUEjelEszH8j WVVSdpScuJjGBUSz7UtqkVb/lYTnG8QJIsWqGH+5t04RacYc0e+Tejs7KBT6LAhhWGpMV3fw2gJ I6pkPWIH2XHj75TeZQY/2mfx6Ivdek9I88Ja0P+HjN+dExxCA0C4phA8mapDIEZtZewidx X-Received: by 2002:a05:6870:b3d4:b0:475:a1ec:9621 with SMTP id 586e51a60fabf-484778f2bd2mr4152184fac.35.1789594613524; Wed, 16 Sep 2026 14:36:53 -0700 (PDT) Received: from [127.0.1.1] ([2a09:bac6:947f:31f5::4fa:4b]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4842a23e310sm3387557fac.12.2026.09.16.14.36.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 14:36:52 -0700 (PDT) From: Frederick Lawler Date: Wed, 16 Sep 2026 16:36:38 -0500 Subject: [PATCH v3 2/2] integrity: Replace integrity_audit_message() with integrity_audit_msg() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260916-report-hash-error-v3-2-73e5d95e9efe@cloudflare.com> References: <20260916-report-hash-error-v3-0-73e5d95e9efe@cloudflare.com> In-Reply-To: <20260916-report-hash-error-v3-0-73e5d95e9efe@cloudflare.com> To: Mimi Zohar , Roberto Sassu , Dmitry Kasatkin , Eric Snowberg , Paul Moore , James Morris , "Serge E. Hallyn" Cc: linux-integrity@vger.kernel.org, linux-security-module@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@cloudflare.com, Frederick Lawler X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3985; i=fred@cloudflare.com; h=from:subject:message-id; bh=z2tQHhAwEFt+agCaRWeVzBR9XVTRt1GIp8bQCvmiYuk=; b=owEBbQKS/ZANAwAKAasltHYDktNtAcsmYgBqqwvrmVrK7ESQgDOkwOK2VK1kK4+HrtNpxxvea iBnILRGMd6JAjMEAAEKAB0WIQTLNBqMVmu1PHvjOe2rJbR2A5LTbQUCaqsL6wAKCRCrJbR2A5LT bV/uD/9wvueyIbMy+vcKKZMyE4dXComXFcTtuZRJhDcc5DnG+h+yNYsKK4JLnE1BKm5i3Vog4uP DZXGjaJVBZ6dYP6FG5oIKKyE6xe5PQzylgbOhDCQQH1Ogj+kO9bwdc3aliPDrL2nCk8Iq4S/bVF EtlxhXPDl9jQjhZUJIa5oaY03bXz05eZehXZhHxG6Pas6SLhZBbgSdmMrtcUDaFagzJT80OL3gq jFmJngTlmZJUHZyfwazPDDTx/ltZTzrt/cCxjE98xkFEA04Gq5QkHfgb3dazPMuffaHI9sTGLzr JqFqMHc+v1C0FZeYxI8SYGZM5/wwzyYwLsqhg/JadVucvL/64vh/s46S68VpsRUAXFD9jnPCXeD 8pvpAQOVW+adIVTCdKVggnu85//0B1fgKXffGaznAde2/zAXwmTEZxb6f/03ygRr0HRrvsrRPEE z1pF4piiWMlwVqorNuMn0hPNNHzdjvYyJNAIpRn/1VA/LpBHpw2Q7pyAUgjF0KPQgi+kda7hfaw spcyEl7Xl6f4xGZPR8N8yQaFDNFUlPr8mMK5fha85Zutm9aikQE2nx/iwY/JpUEtldK3e/SCI1m jxM6ZIvzlDVYF/nvfe37LanXSxyJIq2sloWsd7PGzWyz00BXBjgS2T+CiYMb5DcxBDPtdocdi2H 7nBu+Ssj5st78Rw== X-Developer-Key: i=fred@cloudflare.com; a=openpgp; fpr=CB341A8C566BB53C7BE339EDAB25B4760392D36D integrity_audit_msg() wraps integrity_audit_message(). Replace remaining call sites with the truncated function name. Then remove it since there are no more callers. Signed-off-by: Frederick Lawler --- security/integrity/ima/ima_main.c | 6 +++--- security/integrity/ima/ima_queue_keys.c | 8 ++++---- security/integrity/integrity.h | 13 ------------- security/integrity/integrity_audit.c | 9 --------- 4 files changed, 7 insertions(+), 29 deletions(-) diff --git a/security/integrity/ima/ima_main.c b/security/integrity/ima/ima= _main.c index 9e80f40680d7be08d14d26ba48ed334d4e4ab10c..bd9997b01633d6235fc2fcaa9be= f1931d6ba7247 100644 --- a/security/integrity/ima/ima_main.c +++ b/security/integrity/ima/ima_main.c @@ -1196,9 +1196,9 @@ int process_buffer_measurement(struct mnt_idmap *idma= p, =20 out: if (ret < 0) - integrity_audit_message(AUDIT_INTEGRITY_PCR, NULL, eventname, - func_measure_str(func), - audit_cause, ret, 0, ret); + integrity_audit_msg(AUDIT_INTEGRITY_PCR, NULL, eventname, + func_measure_str(func), + audit_cause, ret, 0, ret); =20 return ret; } diff --git a/security/integrity/ima/ima_queue_keys.c b/security/integrity/i= ma/ima_queue_keys.c index b5ed33cbb272fdfaf7f5e945137c56e46e0d7db1..8adc8863ad5a540bf0c047ba47c= c4817fcb46e9a 100644 --- a/security/integrity/ima/ima_queue_keys.c +++ b/security/integrity/ima/ima_queue_keys.c @@ -90,10 +90,10 @@ static struct ima_key_entry *ima_alloc_key_entry(struct= key *keyring, =20 out: if (rc) { - integrity_audit_message(AUDIT_INTEGRITY_PCR, NULL, - keyring->description, - func_measure_str(KEY_CHECK), - audit_cause, rc, 0, rc); + integrity_audit_msg(AUDIT_INTEGRITY_PCR, NULL, + keyring->description, + func_measure_str(KEY_CHECK), + audit_cause, rc, 0, rc); ima_free_key_entry(entry); entry =3D NULL; } diff --git a/security/integrity/integrity.h b/security/integrity/integrity.h index 2ab6b7e34e7ee2dd29ae03ae1fb45fa26d9c032a..52c5ec881cca468bde72c885cff= a1c564877735e 100644 --- a/security/integrity/integrity.h +++ b/security/integrity/integrity.h @@ -221,11 +221,6 @@ void integrity_audit_msg(int audit_msgno, struct inode= *inode, const char *cause, int result, int info, int errno); =20 -void integrity_audit_message(int audit_msgno, struct inode *inode, - const unsigned char *fname, const char *op, - const char *cause, int result, int info, - int errno); - static inline struct audit_buffer * integrity_audit_log_start(struct audit_context *ctx, gfp_t gfp_mask, int t= ype) { @@ -240,14 +235,6 @@ static inline void integrity_audit_msg(int audit_msgno= , struct inode *inode, { } =20 -static inline void integrity_audit_message(int audit_msgno, - struct inode *inode, - const unsigned char *fname, - const char *op, const char *cause, - int result, int info, int errno) -{ -} - static inline struct audit_buffer * integrity_audit_log_start(struct audit_context *ctx, gfp_t gfp_mask, int t= ype) { diff --git a/security/integrity/integrity_audit.c b/security/integrity/inte= grity_audit.c index 2dd2d7e3916e7bf35c753450315ff22e2d0292b7..22106aaeb0df21fef0990b80611= dcd13cba112be 100644 --- a/security/integrity/integrity_audit.c +++ b/security/integrity/integrity_audit.c @@ -29,15 +29,6 @@ void integrity_audit_msg(int audit_msgno, struct inode *= inode, const unsigned char *fname, const char *op, const char *cause, int result, int audit_info, int errno) -{ - integrity_audit_message(audit_msgno, inode, fname, op, cause, - result, audit_info, errno); -} - -void integrity_audit_message(int audit_msgno, struct inode *inode, - const unsigned char *fname, const char *op, - const char *cause, int result, int audit_info, - int errno) { struct audit_buffer *ab; char name[TASK_COMM_LEN]; --=20 2.43.0