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()
360 static int expr_node_isvalid(struct policydb *p, struct cond_expr_node *expr) in expr_node_isvalid() argument
362 if (expr->expr_type <= 0 || expr->expr_type > COND_LAST) { in expr_node_isvalid()
367 if (expr->bool > p->p_bools.nprim) { in expr_node_isvalid()
388 node->expr.nodes = kcalloc(len, sizeof(*node->expr.nodes), GFP_KERNEL); in cond_read_node()
389 if (!node->expr.nodes) in cond_read_node()
392 node->expr.len = len; in cond_read_node()
395 struct cond_expr_node *expr = &node->expr.nodes[i]; in cond_read_node() local
401 expr->expr_type = le32_to_cpu(buf[0]); in cond_read_node()
402 expr->bool = le32_to_cpu(buf[1]); in cond_read_node()
404 if (!expr_node_isvalid(p, expr)) in cond_read_node()
513 buf[0] = cpu_to_le32(node->expr.len); in cond_write_node()
518 for (i = 0; i < node->expr.len; i++) { in cond_write_node()
519 buf[0] = cpu_to_le32(node->expr.nodes[i].expr_type); in cond_write_node()
520 buf[1] = cpu_to_le32(node->expr.nodes[i].bool); in cond_write_node()
653 newn->expr.nodes = kmemdup(orign->expr.nodes, in duplicate_policydb_cond_list()
654 orign->expr.len * sizeof(*orign->expr.nodes), in duplicate_policydb_cond_list()
656 if (!newn->expr.nodes) in duplicate_policydb_cond_list()
659 newn->expr.len = orign->expr.len; in duplicate_policydb_cond_list()