aboutsummaryrefslogtreecommitdiffstats
path: root/security
diff options
context:
space:
mode:
authorMimi Zohar <zohar@linux.vnet.ibm.com>2016-01-28 13:10:36 -0500
committerMimi Zohar <zohar@linux.vnet.ibm.com>2016-02-18 17:13:56 -0500
commitb5269ab3e29b17e3419c65986bcc1b54b798acc2 (patch)
tree651781df3de569d41cacf95d618644f888ec476a /security
parent1525b06d99b117198ea8d6c128ee5bf28ceb6723 (diff)
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>
Diffstat (limited to 'security')
-rw-r--r--security/integrity/ima/ima_policy.c63
1 files changed, 36 insertions, 27 deletions
diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/ima_policy.c
index e0e18cc5930a..43b642557d6c 100644
--- a/security/integrity/ima/ima_policy.c
+++ b/security/integrity/ima/ima_policy.c
@@ -903,6 +903,40 @@ void ima_policy_stop(struct seq_file *m, void *v)
903#define mt(token) mask_tokens[token] 903#define mt(token) mask_tokens[token]
904#define ft(token) func_tokens[token] 904#define ft(token) func_tokens[token]
905 905
906/*
907 * policy_func_show - display the ima_hooks policy rule
908 */
909static void policy_func_show(struct seq_file *m, enum ima_hooks func)
910{
911 char tbuf[64] = {0,};
912
913 switch (func) {
914 case FILE_CHECK:
915 seq_printf(m, pt(Opt_func), ft(func_file));
916 break;
917 case MMAP_CHECK:
918 seq_printf(m, pt(Opt_func), ft(func_mmap));
919 break;
920 case BPRM_CHECK:
921 seq_printf(m, pt(Opt_func), ft(func_bprm));
922 break;
923 case MODULE_CHECK:
924 seq_printf(m, pt(Opt_func), ft(func_module));
925 break;
926 case FIRMWARE_CHECK:
927 seq_printf(m, pt(Opt_func), ft(func_firmware));
928 break;
929 case POST_SETATTR:
930 seq_printf(m, pt(Opt_func), ft(func_post));
931 break;
932 default:
933 snprintf(tbuf, sizeof(tbuf), "%d", func);
934 seq_printf(m, pt(Opt_func), tbuf);
935 break;
936 }
937 seq_puts(m, " ");
938}
939
906int ima_policy_show(struct seq_file *m, void *v) 940int ima_policy_show(struct seq_file *m, void *v)
907{ 941{
908 struct ima_rule_entry *entry = v; 942 struct ima_rule_entry *entry = v;
@@ -924,33 +958,8 @@ int ima_policy_show(struct seq_file *m, void *v)
924 958
925 seq_puts(m, " "); 959 seq_puts(m, " ");
926 960
927 if (entry->flags & IMA_FUNC) { 961 if (entry->flags & IMA_FUNC)
928 switch (entry->func) { 962 policy_func_show(m, entry->func);
929 case FILE_CHECK:
930 seq_printf(m, pt(Opt_func), ft(func_file));
931 break;
932 case MMAP_CHECK:
933 seq_printf(m, pt(Opt_func), ft(func_mmap));
934 break;
935 case BPRM_CHECK:
936 seq_printf(m, pt(Opt_func), ft(func_bprm));
937 break;
938 case MODULE_CHECK:
939 seq_printf(m, pt(Opt_func), ft(func_module));
940 break;
941 case FIRMWARE_CHECK:
942 seq_printf(m, pt(Opt_func), ft(func_firmware));
943 break;
944 case POST_SETATTR:
945 seq_printf(m, pt(Opt_func), ft(func_post));
946 break;
947 default:
948 snprintf(tbuf, sizeof(tbuf), "%d", entry->func);
949 seq_printf(m, pt(Opt_func), tbuf);
950 break;
951 }
952 seq_puts(m, " ");
953 }
954 963
955 if (entry->flags & IMA_MASK) { 964 if (entry->flags & IMA_MASK) {
956 if (entry->mask & MAY_EXEC) 965 if (entry->mask & MAY_EXEC)