Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 91710
b: refs/heads/master
c: 7c2b240
h: refs/heads/master
v: v3
  • Loading branch information
Eric Paris authored and James Morris committed Apr 21, 2008
1 parent dbe78c0 commit abd4f0c
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 34 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: eb5df9a7ae794a7e352e0582011e9e2b586051b5
refs/heads/master: 7c2b240ef2ae05a0081b4004176fd5838cecc4f6
59 changes: 26 additions & 33 deletions trunk/security/selinux/ss/conditional.c
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
/* Authors: Karl MacMillan <kmacmillan@tresys.com>
* Frank Mayer <mayerf@tresys.com>
* Frank Mayer <mayerf@tresys.com>
*
* Copyright (C) 2003 - 2004 Tresys Technology, LLC
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 2.
*/

Expand Down Expand Up @@ -90,7 +90,7 @@ static int cond_evaluate_expr(struct policydb *p, struct cond_expr *expr)
int evaluate_cond_node(struct policydb *p, struct cond_node *node)
{
int new_state;
struct cond_av_list* cur;
struct cond_av_list *cur;

new_state = cond_evaluate_expr(p, node->expr);
if (new_state != node->cur_state) {
Expand All @@ -99,20 +99,18 @@ int evaluate_cond_node(struct policydb *p, struct cond_node *node)
printk(KERN_ERR "SELinux: expression result was undefined - disabling all rules.\n");
/* turn the rules on or off */
for (cur = node->true_list; cur != NULL; cur = cur->next) {
if (new_state <= 0) {
if (new_state <= 0)
cur->node->key.specified &= ~AVTAB_ENABLED;
} else {
else
cur->node->key.specified |= AVTAB_ENABLED;
}
}

for (cur = node->false_list; cur != NULL; cur = cur->next) {
/* -1 or 1 */
if (new_state) {
if (new_state)
cur->node->key.specified &= ~AVTAB_ENABLED;
} else {
else
cur->node->key.specified |= AVTAB_ENABLED;
}
}
}
return 0;
Expand Down Expand Up @@ -174,8 +172,8 @@ void cond_policydb_destroy(struct policydb *p)
int cond_init_bool_indexes(struct policydb *p)
{
kfree(p->bool_val_to_struct);
p->bool_val_to_struct = (struct cond_bool_datum**)
kmalloc(p->p_bools.nprim * sizeof(struct cond_bool_datum*), GFP_KERNEL);
p->bool_val_to_struct = (struct cond_bool_datum **)
kmalloc(p->p_bools.nprim * sizeof(struct cond_bool_datum *), GFP_KERNEL);
if (!p->bool_val_to_struct)
return -1;
return 0;
Expand All @@ -200,7 +198,7 @@ int cond_index_bool(void *key, void *datum, void *datap)
return -EINVAL;

p->p_bool_val_to_name[booldatum->value - 1] = key;
p->bool_val_to_struct[booldatum->value -1] = booldatum;
p->bool_val_to_struct[booldatum->value - 1] = booldatum;

return 0;
}
Expand Down Expand Up @@ -252,8 +250,7 @@ int cond_read_bool(struct policydb *p, struct hashtab *h, void *fp)
return -1;
}

struct cond_insertf_data
{
struct cond_insertf_data {
struct policydb *p;
struct cond_av_list *other;
struct cond_av_list *head;
Expand Down Expand Up @@ -353,9 +350,8 @@ static int cond_read_av_list(struct policydb *p, void *fp, struct cond_av_list *
return -1;

len = le32_to_cpu(buf[0]);
if (len == 0) {
if (len == 0)
return 0;
}

data.p = p;
data.other = other;
Expand Down Expand Up @@ -408,15 +404,14 @@ static int cond_read_node(struct policydb *p, struct cond_node *node, void *fp)
/* expr */
len = le32_to_cpu(buf[0]);

for (i = 0; i < len; i++ ) {
for (i = 0; i < len; i++) {
rc = next_entry(buf, fp, sizeof(u32) * 2);
if (rc < 0)
goto err;

expr = kzalloc(sizeof(struct cond_expr), GFP_KERNEL);
if (!expr) {
if (!expr)
goto err;
}

expr->expr_type = le32_to_cpu(buf[0]);
expr->bool = le32_to_cpu(buf[1]);
Expand All @@ -426,11 +421,10 @@ static int cond_read_node(struct policydb *p, struct cond_node *node, void *fp)
goto err;
}

if (i == 0) {
if (i == 0)
node->expr = expr;
} else {
else
last->next = expr;
}
last = expr;
}

Expand Down Expand Up @@ -469,11 +463,10 @@ int cond_read_list(struct policydb *p, void *fp)
if (cond_read_node(p, node, fp) != 0)
goto err;

if (i == 0) {
if (i == 0)
p->cond_list = node;
} else {
else
last->next = node;
}
last = node;
}
return 0;
Expand All @@ -490,24 +483,24 @@ void cond_compute_av(struct avtab *ctab, struct avtab_key *key, struct av_decisi
{
struct avtab_node *node;

if(!ctab || !key || !avd)
if (!ctab || !key || !avd)
return;

for(node = avtab_search_node(ctab, key); node != NULL;
for (node = avtab_search_node(ctab, key); node != NULL;
node = avtab_search_node_next(node, key->specified)) {
if ( (u16) (AVTAB_ALLOWED|AVTAB_ENABLED) ==
(node->key.specified & (AVTAB_ALLOWED|AVTAB_ENABLED)))
if ((u16)(AVTAB_ALLOWED|AVTAB_ENABLED) ==
(node->key.specified & (AVTAB_ALLOWED|AVTAB_ENABLED)))
avd->allowed |= node->datum.data;
if ( (u16) (AVTAB_AUDITDENY|AVTAB_ENABLED) ==
(node->key.specified & (AVTAB_AUDITDENY|AVTAB_ENABLED)))
if ((u16)(AVTAB_AUDITDENY|AVTAB_ENABLED) ==
(node->key.specified & (AVTAB_AUDITDENY|AVTAB_ENABLED)))
/* Since a '0' in an auditdeny mask represents a
* permission we do NOT want to audit (dontaudit), we use
* the '&' operand to ensure that all '0's in the mask
* are retained (much unlike the allow and auditallow cases).
*/
avd->auditdeny &= node->datum.data;
if ( (u16) (AVTAB_AUDITALLOW|AVTAB_ENABLED) ==
(node->key.specified & (AVTAB_AUDITALLOW|AVTAB_ENABLED)))
if ((u16)(AVTAB_AUDITALLOW|AVTAB_ENABLED) ==
(node->key.specified & (AVTAB_AUDITALLOW|AVTAB_ENABLED)))
avd->auditallow |= node->datum.data;
}
return;
Expand Down

0 comments on commit abd4f0c

Please sign in to comment.