aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--security/integrity/ima/ima_main.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/security/integrity/ima/ima_main.c b/security/integrity/ima/ima_main.c
index dcc98cf542d8..7689c1e21f09 100644
--- a/security/integrity/ima/ima_main.c
+++ b/security/integrity/ima/ima_main.c
@@ -81,7 +81,6 @@ static void ima_rdwr_violation_check(struct file *file)
81{ 81{
82 struct inode *inode = file_inode(file); 82 struct inode *inode = file_inode(file);
83 fmode_t mode = file->f_mode; 83 fmode_t mode = file->f_mode;
84 int must_measure;
85 bool send_tomtou = false, send_writers = false; 84 bool send_tomtou = false, send_writers = false;
86 char *pathbuf = NULL; 85 char *pathbuf = NULL;
87 const char *pathname; 86 const char *pathname;
@@ -94,16 +93,12 @@ static void ima_rdwr_violation_check(struct file *file)
94 if (mode & FMODE_WRITE) { 93 if (mode & FMODE_WRITE) {
95 if (atomic_read(&inode->i_readcount) && IS_IMA(inode)) 94 if (atomic_read(&inode->i_readcount) && IS_IMA(inode))
96 send_tomtou = true; 95 send_tomtou = true;
97 goto out; 96 } else {
97 if ((atomic_read(&inode->i_writecount) > 0) &&
98 ima_must_measure(inode, MAY_READ, FILE_CHECK))
99 send_writers = true;
98 } 100 }
99 101
100 must_measure = ima_must_measure(inode, MAY_READ, FILE_CHECK);
101 if (!must_measure)
102 goto out;
103
104 if (atomic_read(&inode->i_writecount) > 0)
105 send_writers = true;
106out:
107 mutex_unlock(&inode->i_mutex); 102 mutex_unlock(&inode->i_mutex);
108 103
109 if (!send_tomtou && !send_writers) 104 if (!send_tomtou && !send_writers)