Lines Matching refs:expr
23 static int cond_evaluate_expr(struct policydb *p, struct cond_expr *expr) in cond_evaluate_expr() argument
29 if (expr->len == 0) in cond_evaluate_expr()
32 for (i = 0; i < expr->len; i++) { in cond_evaluate_expr()
33 struct cond_expr_node *node = &expr->nodes[i]; in cond_evaluate_expr()
97 new_state = cond_evaluate_expr(p, &node->expr); in evaluate_cond_node()
141 kfree(node->expr.nodes); in cond_node_destroy()
358 static int expr_node_isvalid(struct policydb *p, struct cond_expr_node *expr) in expr_node_isvalid() argument
360 if (expr->expr_type <= 0 || expr->expr_type > COND_LAST) { in expr_node_isvalid()
365 if (expr->boolean > p->p_bools.nprim) { in expr_node_isvalid()
386 node->expr.nodes = kcalloc(len, sizeof(*node->expr.nodes), GFP_KERNEL); in cond_read_node()
387 if (!node->expr.nodes) in cond_read_node()
390 node->expr.len = len; in cond_read_node()
393 struct cond_expr_node *expr = &node->expr.nodes[i]; in cond_read_node() local
399 expr->expr_type = le32_to_cpu(buf[0]); in cond_read_node()
400 expr->boolean = le32_to_cpu(buf[1]); in cond_read_node()
402 if (!expr_node_isvalid(p, expr)) in cond_read_node()
510 buf[0] = cpu_to_le32(node->expr.len); in cond_write_node()
515 for (i = 0; i < node->expr.len; i++) { in cond_write_node()
516 buf[0] = cpu_to_le32(node->expr.nodes[i].expr_type); in cond_write_node()
517 buf[1] = cpu_to_le32(node->expr.nodes[i].boolean); in cond_write_node()
646 newn->expr.nodes = in duplicate_policydb_cond_list()
647 kmemdup(orign->expr.nodes, in duplicate_policydb_cond_list()
648 orign->expr.len * sizeof(*orign->expr.nodes), in duplicate_policydb_cond_list()
650 if (!newn->expr.nodes) in duplicate_policydb_cond_list()
653 newn->expr.len = orign->expr.len; in duplicate_policydb_cond_list()