Lines Matching defs:expr
19 * cond_evaluate_expr evaluates a conditional expr
24 static int cond_evaluate_expr(struct policydb *p, struct cond_expr *expr)
30 if (expr->len == 0)
33 for (i = 0; i < expr->len; i++) {
34 struct cond_expr_node *node = &expr->nodes[i];
98 new_state = cond_evaluate_expr(p, &node->expr);
142 kfree(node->expr.nodes);
362 static int expr_node_isvalid(struct policydb *p, struct cond_expr_node *expr)
364 if (expr->expr_type <= 0 || expr->expr_type > COND_LAST) {
369 if (expr->boolean > p->p_bools.nprim) {
388 /* expr */
390 node->expr.nodes = kcalloc(len, sizeof(*node->expr.nodes), GFP_KERNEL);
391 if (!node->expr.nodes)
394 node->expr.len = len;
397 struct cond_expr_node *expr = &node->expr.nodes[i];
403 expr->expr_type = le32_to_cpu(buf[0]);
404 expr->boolean = le32_to_cpu(buf[1]);
406 if (!expr_node_isvalid(p, expr))
514 buf[0] = cpu_to_le32(node->expr.len);
519 for (i = 0; i < node->expr.len; i++) {
520 buf[0] = cpu_to_le32(node->expr.nodes[i].expr_type);
521 buf[1] = cpu_to_le32(node->expr.nodes[i].boolean);
652 newn->expr.nodes = kmemdup(orign->expr.nodes,
653 orign->expr.len * sizeof(*orign->expr.nodes),
655 if (!newn->expr.nodes)
658 newn->expr.len = orign->expr.len;