mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 15:20:58 +07:00
ima: refactor ima_policy_show() to display "ima_hooks" rules
Define and call a function to display the "ima_hooks" rules. Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com> Acked-by: Petko Manolov <petkan@mip-labs.com> Acked-by: Dmitry Kasatkin <dmitry.kasatkin@huawei.com>
This commit is contained in:
parent
1525b06d99
commit
b5269ab3e2
@ -903,6 +903,40 @@ void ima_policy_stop(struct seq_file *m, void *v)
|
|||||||
#define mt(token) mask_tokens[token]
|
#define mt(token) mask_tokens[token]
|
||||||
#define ft(token) func_tokens[token]
|
#define ft(token) func_tokens[token]
|
||||||
|
|
||||||
|
/*
|
||||||
|
* policy_func_show - display the ima_hooks policy rule
|
||||||
|
*/
|
||||||
|
static void policy_func_show(struct seq_file *m, enum ima_hooks func)
|
||||||
|
{
|
||||||
|
char tbuf[64] = {0,};
|
||||||
|
|
||||||
|
switch (func) {
|
||||||
|
case FILE_CHECK:
|
||||||
|
seq_printf(m, pt(Opt_func), ft(func_file));
|
||||||
|
break;
|
||||||
|
case MMAP_CHECK:
|
||||||
|
seq_printf(m, pt(Opt_func), ft(func_mmap));
|
||||||
|
break;
|
||||||
|
case BPRM_CHECK:
|
||||||
|
seq_printf(m, pt(Opt_func), ft(func_bprm));
|
||||||
|
break;
|
||||||
|
case MODULE_CHECK:
|
||||||
|
seq_printf(m, pt(Opt_func), ft(func_module));
|
||||||
|
break;
|
||||||
|
case FIRMWARE_CHECK:
|
||||||
|
seq_printf(m, pt(Opt_func), ft(func_firmware));
|
||||||
|
break;
|
||||||
|
case POST_SETATTR:
|
||||||
|
seq_printf(m, pt(Opt_func), ft(func_post));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
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)
|
int ima_policy_show(struct seq_file *m, void *v)
|
||||||
{
|
{
|
||||||
struct ima_rule_entry *entry = v;
|
struct ima_rule_entry *entry = v;
|
||||||
@ -924,33 +958,8 @@ int ima_policy_show(struct seq_file *m, void *v)
|
|||||||
|
|
||||||
seq_puts(m, " ");
|
seq_puts(m, " ");
|
||||||
|
|
||||||
if (entry->flags & IMA_FUNC) {
|
if (entry->flags & IMA_FUNC)
|
||||||
switch (entry->func) {
|
policy_func_show(m, entry->func);
|
||||||
case FILE_CHECK:
|
|
||||||
seq_printf(m, pt(Opt_func), ft(func_file));
|
|
||||||
break;
|
|
||||||
case MMAP_CHECK:
|
|
||||||
seq_printf(m, pt(Opt_func), ft(func_mmap));
|
|
||||||
break;
|
|
||||||
case BPRM_CHECK:
|
|
||||||
seq_printf(m, pt(Opt_func), ft(func_bprm));
|
|
||||||
break;
|
|
||||||
case MODULE_CHECK:
|
|
||||||
seq_printf(m, pt(Opt_func), ft(func_module));
|
|
||||||
break;
|
|
||||||
case FIRMWARE_CHECK:
|
|
||||||
seq_printf(m, pt(Opt_func), ft(func_firmware));
|
|
||||||
break;
|
|
||||||
case POST_SETATTR:
|
|
||||||
seq_printf(m, pt(Opt_func), ft(func_post));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
snprintf(tbuf, sizeof(tbuf), "%d", entry->func);
|
|
||||||
seq_printf(m, pt(Opt_func), tbuf);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
seq_puts(m, " ");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (entry->flags & IMA_MASK) {
|
if (entry->flags & IMA_MASK) {
|
||||||
if (entry->mask & MAY_EXEC)
|
if (entry->mask & MAY_EXEC)
|
||||||
|
Loading…
Reference in New Issue
Block a user