summaryrefslogtreecommitdiffstats
path: root/security
diff options
context:
space:
mode:
authorMimi Zohar <zohar@linux.vnet.ibm.com>2017-04-24 12:04:09 -0400
committerMimi Zohar <zohar@linux.vnet.ibm.com>2017-06-21 14:37:12 -0400
commit33ce9549cfa1e71d77bc91a2e67e65d693e2e53f (patch)
tree8e52e9cd2498a07f27dc7f4a055c0b05a8c3567f /security
parentcdac74ddf28e2f07319cc89446f9dea35d22d999 (diff)
ima: extend the "ima_policy" boot command line to support multiple policies
Add support for providing multiple builtin policies on the "ima_policy=" boot command line. Use "|" as the delimitor separating the policy names. Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
Diffstat (limited to 'security')
-rw-r--r--security/integrity/ima/ima_policy.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/ima_policy.c
index 3ab1067db624..0ddc41389a9c 100644
--- a/security/integrity/ima/ima_policy.c
+++ b/security/integrity/ima/ima_policy.c
@@ -170,19 +170,24 @@ static int __init default_measure_policy_setup(char *str)
170} 170}
171__setup("ima_tcb", default_measure_policy_setup); 171__setup("ima_tcb", default_measure_policy_setup);
172 172
173static bool ima_use_appraise_tcb __initdata;
173static int __init policy_setup(char *str) 174static int __init policy_setup(char *str)
174{ 175{
175 if (ima_policy) 176 char *p;
176 return 1;
177 177
178 if (strcmp(str, "tcb") == 0) 178 while ((p = strsep(&str, " |\n")) != NULL) {
179 ima_policy = DEFAULT_TCB; 179 if (*p == ' ')
180 continue;
181 if ((strcmp(p, "tcb") == 0) && !ima_policy)
182 ima_policy = DEFAULT_TCB;
183 else if (strcmp(p, "appraise_tcb") == 0)
184 ima_use_appraise_tcb = 1;
185 }
180 186
181 return 1; 187 return 1;
182} 188}
183__setup("ima_policy=", policy_setup); 189__setup("ima_policy=", policy_setup);
184 190
185static bool ima_use_appraise_tcb __initdata;
186static int __init default_appraise_policy_setup(char *str) 191static int __init default_appraise_policy_setup(char *str)
187{ 192{
188 ima_use_appraise_tcb = 1; 193 ima_use_appraise_tcb = 1;