Skip to content

Commit b882fae

Browse files
Dmitry KasatkinMimi Zohar
Dmitry Kasatkin
authored and
Mimi Zohar
committed
ima: prevent unnecessary policy checking
ima_rdwr_violation_check is called for every file openning. The function checks the policy even when violation condition is not met. It causes unnecessary policy checking. This patch does policy checking only if violation condition is met. Changelog: - check writecount is greater than zero (Mimi) Signed-off-by: Dmitry Kasatkin <[email protected]> Signed-off-by: Mimi Zohar <[email protected]>
1 parent 3e38df5 commit b882fae

File tree

1 file changed

+4
-9
lines changed

1 file changed

+4
-9
lines changed

security/integrity/ima/ima_main.c

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ static void ima_rdwr_violation_check(struct file *file)
8181
{
8282
struct inode *inode = file_inode(file);
8383
fmode_t mode = file->f_mode;
84-
int must_measure;
8584
bool send_tomtou = false, send_writers = false;
8685
char *pathbuf = NULL;
8786
const char *pathname;
@@ -94,16 +93,12 @@ static void ima_rdwr_violation_check(struct file *file)
9493
if (mode & FMODE_WRITE) {
9594
if (atomic_read(&inode->i_readcount) && IS_IMA(inode))
9695
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;
98100
}
99101

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;
106-
out:
107102
mutex_unlock(&inode->i_mutex);
108103

109104
if (!send_tomtou && !send_writers)

0 commit comments

Comments
 (0)