diff options
Diffstat (limited to 'security/selinux/ss/services.c')
-rw-r--r-- | security/selinux/ss/services.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c index 63e0b7f29cb5..61492485de84 100644 --- a/security/selinux/ss/services.c +++ b/security/selinux/ss/services.c | |||
@@ -1759,19 +1759,22 @@ int security_set_bools(int len, int *values) | |||
1759 | goto out; | 1759 | goto out; |
1760 | } | 1760 | } |
1761 | 1761 | ||
1762 | printk(KERN_INFO "security: committed booleans { "); | ||
1763 | for (i = 0; i < len; i++) { | 1762 | for (i = 0; i < len; i++) { |
1763 | if (!!values[i] != policydb.bool_val_to_struct[i]->state) { | ||
1764 | audit_log(current->audit_context, GFP_ATOMIC, | ||
1765 | AUDIT_MAC_CONFIG_CHANGE, | ||
1766 | "bool=%s val=%d old_val=%d auid=%u", | ||
1767 | policydb.p_bool_val_to_name[i], | ||
1768 | !!values[i], | ||
1769 | policydb.bool_val_to_struct[i]->state, | ||
1770 | audit_get_loginuid(current->audit_context)); | ||
1771 | } | ||
1764 | if (values[i]) { | 1772 | if (values[i]) { |
1765 | policydb.bool_val_to_struct[i]->state = 1; | 1773 | policydb.bool_val_to_struct[i]->state = 1; |
1766 | } else { | 1774 | } else { |
1767 | policydb.bool_val_to_struct[i]->state = 0; | 1775 | policydb.bool_val_to_struct[i]->state = 0; |
1768 | } | 1776 | } |
1769 | if (i != 0) | ||
1770 | printk(", "); | ||
1771 | printk("%s:%d", policydb.p_bool_val_to_name[i], | ||
1772 | policydb.bool_val_to_struct[i]->state); | ||
1773 | } | 1777 | } |
1774 | printk(" }\n"); | ||
1775 | 1778 | ||
1776 | for (cur = policydb.cond_list; cur != NULL; cur = cur->next) { | 1779 | for (cur = policydb.cond_list; cur != NULL; cur = cur->next) { |
1777 | rc = evaluate_cond_node(&policydb, cur); | 1780 | rc = evaluate_cond_node(&policydb, cur); |