Lines Matching refs:expr
24 static int cond_evaluate_expr(struct policydb *p, struct cond_expr *expr) in cond_evaluate_expr() argument
30 if (expr->len == 0) in cond_evaluate_expr()
33 for (i = 0; i < expr->len; i++) { in cond_evaluate_expr()
34 struct cond_expr_node *node = &expr->nodes[i]; in cond_evaluate_expr()
98 new_state = cond_evaluate_expr(p, &node->expr); in evaluate_cond_node()
142 kfree(node->expr.nodes); in cond_node_destroy()
359 static int expr_node_isvalid(struct policydb *p, struct cond_expr_node *expr) in expr_node_isvalid() argument
361 if (expr->expr_type <= 0 || expr->expr_type > COND_LAST) { in expr_node_isvalid()
366 if (expr->bool > p->p_bools.nprim) { in expr_node_isvalid()
387 node->expr.nodes = kcalloc(len, sizeof(*node->expr.nodes), GFP_KERNEL); in cond_read_node()
388 if (!node->expr.nodes) in cond_read_node()
391 node->expr.len = len; in cond_read_node()
394 struct cond_expr_node *expr = &node->expr.nodes[i]; in cond_read_node() local
400 expr->expr_type = le32_to_cpu(buf[0]); in cond_read_node()
401 expr->bool = le32_to_cpu(buf[1]); in cond_read_node()
403 if (!expr_node_isvalid(p, expr)) in cond_read_node()
512 buf[0] = cpu_to_le32(node->expr.len); in cond_write_node()
517 for (i = 0; i < node->expr.len; i++) { in cond_write_node()
518 buf[0] = cpu_to_le32(node->expr.nodes[i].expr_type); in cond_write_node()
519 buf[1] = cpu_to_le32(node->expr.nodes[i].bool); in cond_write_node()
651 newn->expr.nodes = kcalloc(orign->expr.len, in duplicate_policydb_cond_list()
652 sizeof(*newn->expr.nodes), GFP_KERNEL); in duplicate_policydb_cond_list()
653 if (!newn->expr.nodes) in duplicate_policydb_cond_list()
655 for (j = 0; j < orign->expr.len; j++) in duplicate_policydb_cond_list()
656 newn->expr.nodes[j] = orign->expr.nodes[j]; in duplicate_policydb_cond_list()
657 newn->expr.len = orign->expr.len; in duplicate_policydb_cond_list()