summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2025-04-22 09:36:45 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2025-04-22 09:36:45 -0700
commite4b51cb60e16f09b95c9ee567692aaec50087747 (patch)
treeed5fab8da99ddecd38fff6c9429472ab792ccd85
parenta33b5a08cbbdd7aadff95f40cbb45ab86841679e (diff)
parent30d68cb0c37ebe2dc63aa1d46a28b9163e61caa2 (diff)
downloadlinux-e4b51cb60e16f09b95c9ee567692aaec50087747.tar.gz
linux-e4b51cb60e16f09b95c9ee567692aaec50087747.tar.bz2
linux-e4b51cb60e16f09b95c9ee567692aaec50087747.zip
Merge tag 'integrity-6.15-rc3-fix' of https://github.com/linux-integrity/linux
Pull integrity fix from Roberto Sassu: "One performance fix to avoid unnecessarily taking the inode lock" * tag 'integrity-6.15-rc3-fix' of https://github.com/linux-integrity/linux: ima: process_measurement() needlessly takes inode_lock() on MAY_READ
-rw-r--r--security/integrity/ima/ima_main.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/security/integrity/ima/ima_main.c b/security/integrity/ima/ima_main.c
index f3e7ac513db3..f99ab1a3b0f0 100644
--- a/security/integrity/ima/ima_main.c
+++ b/security/integrity/ima/ima_main.c
@@ -245,7 +245,9 @@ static int process_measurement(struct file *file, const struct cred *cred,
&allowed_algos);
violation_check = ((func == FILE_CHECK || func == MMAP_CHECK ||
func == MMAP_CHECK_REQPROT) &&
- (ima_policy_flag & IMA_MEASURE));
+ (ima_policy_flag & IMA_MEASURE) &&
+ ((action & IMA_MEASURE) ||
+ (file->f_mode & FMODE_WRITE)));
if (!action && !violation_check)
return 0;