Lines Matching defs:expr
18 * cond_evaluate_expr evaluates a conditional expr
23 static int cond_evaluate_expr(struct policydb *p, struct cond_expr *expr)
29 if (expr->len == 0)
32 for (i = 0; i < expr->len; i++) {
33 struct cond_expr_node *node = &expr->nodes[i];
97 new_state = cond_evaluate_expr(p, &node->expr);
141 kfree(node->expr.nodes);
364 static int expr_node_isvalid(struct policydb *p, struct cond_expr_node *expr)
366 if (expr->expr_type <= 0 || expr->expr_type > COND_LAST) {
371 if (expr->boolean > p->p_bools.nprim) {
390 /* expr */
392 node->expr.nodes = kcalloc(len, sizeof(*node->expr.nodes), GFP_KERNEL);
393 if (!node->expr.nodes)
396 node->expr.len = len;
399 struct cond_expr_node *expr = &node->expr.nodes[i];
405 expr->expr_type = le32_to_cpu(buf[0]);
406 expr->boolean = le32_to_cpu(buf[1]);
408 if (!expr_node_isvalid(p, expr))
516 buf[0] = cpu_to_le32(node->expr.len);
521 for (i = 0; i < node->expr.len; i++) {
522 buf[0] = cpu_to_le32(node->expr.nodes[i].expr_type);
523 buf[1] = cpu_to_le32(node->expr.nodes[i].boolean);
652 newn->expr.nodes =
653 kmemdup(orign->expr.nodes,
654 orign->expr.len * sizeof(*orign->expr.nodes),
656 if (!newn->expr.nodes)
659 newn->expr.len = orign->expr.len;