Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b5269ab3 authored by Mimi Zohar's avatar Mimi Zohar
Browse files

ima: refactor ima_policy_show() to display "ima_hooks" rules



Define and call a function to display the "ima_hooks" rules.

Signed-off-by: default avatarMimi Zohar <zohar@linux.vnet.ibm.com>
Acked-by: default avatarPetko Manolov <petkan@mip-labs.com>
Acked-by: default avatarDmitry Kasatkin <dmitry.kasatkin@huawei.com>
parent 1525b06d
Loading
Loading
Loading
Loading
+36 −27
Original line number Diff line number Diff line
@@ -903,29 +903,14 @@ void ima_policy_stop(struct seq_file *m, void *v)
#define mt(token)	mask_tokens[token]
#define ft(token)	func_tokens[token]

int ima_policy_show(struct seq_file *m, void *v)
/*
 * policy_func_show - display the ima_hooks policy rule
 */
static void policy_func_show(struct seq_file *m, enum ima_hooks func)
{
	struct ima_rule_entry *entry = v;
	int i = 0;
	char tbuf[64] = {0,};

	rcu_read_lock();

	if (entry->action & MEASURE)
		seq_puts(m, pt(Opt_measure));
	if (entry->action & DONT_MEASURE)
		seq_puts(m, pt(Opt_dont_measure));
	if (entry->action & APPRAISE)
		seq_puts(m, pt(Opt_appraise));
	if (entry->action & DONT_APPRAISE)
		seq_puts(m, pt(Opt_dont_appraise));
	if (entry->action & AUDIT)
		seq_puts(m, pt(Opt_audit));

	seq_puts(m, " ");

	if (entry->flags & IMA_FUNC) {
		switch (entry->func) {
	switch (func) {
	case FILE_CHECK:
		seq_printf(m, pt(Opt_func), ft(func_file));
		break;
@@ -945,13 +930,37 @@ int ima_policy_show(struct seq_file *m, void *v)
		seq_printf(m, pt(Opt_func), ft(func_post));
		break;
	default:
			snprintf(tbuf, sizeof(tbuf), "%d", entry->func);
		snprintf(tbuf, sizeof(tbuf), "%d", func);
		seq_printf(m, pt(Opt_func), tbuf);
		break;
	}
	seq_puts(m, " ");
}

int ima_policy_show(struct seq_file *m, void *v)
{
	struct ima_rule_entry *entry = v;
	int i = 0;
	char tbuf[64] = {0,};

	rcu_read_lock();

	if (entry->action & MEASURE)
		seq_puts(m, pt(Opt_measure));
	if (entry->action & DONT_MEASURE)
		seq_puts(m, pt(Opt_dont_measure));
	if (entry->action & APPRAISE)
		seq_puts(m, pt(Opt_appraise));
	if (entry->action & DONT_APPRAISE)
		seq_puts(m, pt(Opt_dont_appraise));
	if (entry->action & AUDIT)
		seq_puts(m, pt(Opt_audit));

	seq_puts(m, " ");

	if (entry->flags & IMA_FUNC)
		policy_func_show(m, entry->func);

	if (entry->flags & IMA_MASK) {
		if (entry->mask & MAY_EXEC)
			seq_printf(m, pt(Opt_mask), mt(mask_exec));