236 |
{ |
{ |
237 |
struct ccs_domain_initializer e = { .is_not = is_not }; |
struct ccs_domain_initializer e = { .is_not = is_not }; |
238 |
int error = is_delete ? -ENOENT : -ENOMEM; |
int error = is_delete ? -ENOENT : -ENOMEM; |
239 |
if (!ccs_correct_path(program, 1, -1, -1)) |
if (!ccs_correct_path(program)) |
240 |
return -EINVAL; /* No patterns allowed. */ |
return -EINVAL; |
241 |
if (domainname) { |
if (domainname) { |
242 |
if (!ccs_domain_def(domainname) && |
if (!ccs_domain_def(domainname) && |
243 |
ccs_correct_path(domainname, 1, -1, -1)) |
ccs_correct_path(domainname)) |
244 |
e.is_last_name = true; |
e.is_last_name = true; |
245 |
else if (!ccs_correct_domain(domainname)) |
else if (!ccs_correct_domain(domainname)) |
246 |
return -EINVAL; |
return -EINVAL; |
350 |
{ |
{ |
351 |
struct ccs_domain_keeper e = { .is_not = is_not }; |
struct ccs_domain_keeper e = { .is_not = is_not }; |
352 |
int error = is_delete ? -ENOENT : -ENOMEM; |
int error = is_delete ? -ENOENT : -ENOMEM; |
353 |
if (!ccs_domain_def(domainname) && |
if (!ccs_domain_def(domainname) && ccs_correct_path(domainname)) |
|
ccs_correct_path(domainname, 1, -1, -1)) |
|
354 |
e.is_last_name = true; |
e.is_last_name = true; |
355 |
else if (!ccs_correct_domain(domainname)) |
else if (!ccs_correct_domain(domainname)) |
356 |
return -EINVAL; |
return -EINVAL; |
357 |
if (program) { |
if (program) { |
358 |
if (!ccs_correct_path(program, 1, -1, -1)) |
if (!ccs_correct_path(program)) |
359 |
return -EINVAL; |
return -EINVAL; |
360 |
e.program = ccs_get_name(program); |
e.program = ccs_get_name(program); |
361 |
if (!e.program) |
if (!e.program) |
459 |
{ |
{ |
460 |
struct ccs_aggregator e = { }; |
struct ccs_aggregator e = { }; |
461 |
int error = is_delete ? -ENOENT : -ENOMEM; |
int error = is_delete ? -ENOENT : -ENOMEM; |
462 |
if (!ccs_correct_path(original_name, 1, 0, -1) || |
if (!ccs_correct_path(original_name) || |
463 |
!ccs_correct_path(aggregated_name, 1, -1, -1)) |
!ccs_correct_path(aggregated_name)) |
464 |
return -EINVAL; |
return -EINVAL; |
465 |
e.original_name = ccs_get_name(original_name); |
e.original_name = ccs_get_name(original_name); |
466 |
e.aggregated_name = ccs_get_name(aggregated_name); |
e.aggregated_name = ccs_get_name(aggregated_name); |
645 |
/* Calculate domain to transit to. */ |
/* Calculate domain to transit to. */ |
646 |
if (ccs_domain_initializer(old_domain->domainname, &rn, &ln)) { |
if (ccs_domain_initializer(old_domain->domainname, &rn, &ln)) { |
647 |
/* Transit to the child of ccs_kernel_domain domain. */ |
/* Transit to the child of ccs_kernel_domain domain. */ |
648 |
snprintf(ee->tmp, CCS_EXEC_TMPSIZE - 1, ROOT_NAME " " "%s", |
snprintf(ee->tmp, CCS_EXEC_TMPSIZE - 1, CCS_ROOT_NAME " " "%s", |
649 |
rn.name); |
rn.name); |
650 |
} else if (old_domain == &ccs_kernel_domain && !ccs_policy_loaded) { |
} else if (old_domain == &ccs_kernel_domain && !ccs_policy_loaded) { |
651 |
/* |
/* |