Lines Matching refs:current

159 int cil_resolve_classperms(struct cil_tree_node *current, struct cil_classperms *cp, void *extra_args)
170 rc = cil_resolve_name(current, cp->class_str, CIL_SYM_CLASSES, extra_args, &datum);
194 static int cil_resolve_classperms_set(struct cil_tree_node *current, struct cil_classperms_set *cp_set, void *extra_args)
199 rc = cil_resolve_name(current, cp_set->set_str, CIL_SYM_CLASSPERMSETS, extra_args, &datum);
207 rc = cil_resolve_classperms_list(current, cp_set->set->classperms, extra_args);
219 int cil_resolve_classperms_list(struct cil_tree_node *current, struct cil_list *cp_list, void *extra_args)
226 rc = cil_resolve_classperms(current, curr->data, extra_args);
231 rc = cil_resolve_classperms_set(current, curr->data, extra_args);
244 int cil_resolve_classpermissionset(struct cil_tree_node *current, struct cil_classpermissionset *cps, void *extra_args)
252 rc = cil_resolve_name(current, cps->set_str, CIL_SYM_CLASSPERMSETS, args, &datum);
257 rc = cil_resolve_classperms_list(current, cps->classperms, extra_args);
295 static int cil_resolve_permissionx(struct cil_tree_node *current, struct cil_permissionx *permx, void *extra_args)
300 rc = cil_resolve_name(current, permx->obj_str, CIL_SYM_CLASSES, extra_args, &obj_datum);
312 int cil_resolve_avrule(struct cil_tree_node *current, void *extra_args)
317 struct cil_avrule *rule = current->data;
328 rc = cil_resolve_name(current, rule->src_str, CIL_SYM_TYPES, args, &src_datum);
337 rc = cil_resolve_name(current, rule->tgt_str, CIL_SYM_TYPES, args, &tgt_datum);
349 rc = cil_resolve_classperms_list(current, rule->perms.classperms, extra_args);
355 rc = cil_resolve_name(current, rule->perms.x.permx_str, CIL_SYM_PERMX, args, &permx_datum);
361 rc = cil_resolve_permissionx(current, rule->perms.x.permx, extra_args);
374 int cil_resolve_type_rule(struct cil_tree_node *current, void *extra_args)
377 struct cil_type_rule *rule = current->data;
385 rc = cil_resolve_name(current, rule->src_str, CIL_SYM_TYPES, extra_args, &src_datum);
394 rc = cil_resolve_name(current, rule->tgt_str, CIL_SYM_TYPES, extra_args, &tgt_datum);
401 rc = cil_resolve_name(current, rule->obj_str, CIL_SYM_CLASSES, extra_args, &obj_datum);
407 rc = cil_resolve_name(current, rule->result_str, CIL_SYM_TYPES, extra_args, &result_datum);
427 int cil_resolve_typeattributeset(struct cil_tree_node *current, void *extra_args)
429 struct cil_typeattributeset *attrtypes = current->data;
435 rc = cil_resolve_name(current, attrtypes->attr_str, CIL_SYM_TYPES, extra_args, &attr_datum);
450 rc = cil_resolve_expr(CIL_TYPEATTRIBUTESET, attrtypes->str_expr, &attrtypes->datum_expr, current, extra_args);
467 static int cil_resolve_expandtypeattribute(struct cil_tree_node *current, void *extra_args)
469 struct cil_expandtypeattribute *expandattr = current->data;
479 rc = cil_resolve_name(current, (char *)curr->data, CIL_SYM_TYPES, extra_args, &attr_datum);
501 static int cil_resolve_aliasactual(struct cil_tree_node *current, void *extra_args, enum cil_flavor flavor, enum cil_flavor alias_flavor)
505 struct cil_aliasactual *aliasactual = current->data;
515 rc = cil_resolve_name_keep_aliases(current, aliasactual->alias_str, sym_index, extra_args, &alias_datum);
525 rc = cil_resolve_name(current, aliasactual->actual_str, sym_index, extra_args, &actual_datum);
552 static int cil_resolve_alias_to_actual(struct cil_tree_node *current, enum cil_flavor flavor)
554 struct cil_alias *alias = current->data;
555 struct cil_alias *a1 = current->data;
556 struct cil_alias *a2 = current->data;
562 cil_tree_log(current, CIL_ERR, "Alias declared but not used");
570 cil_tree_log(current, CIL_ERR, "Alias %s references an unused alias %s", alias->datum.name, a1->datum.name);
600 int cil_resolve_typepermissive(struct cil_tree_node *current, void *extra_args)
602 struct cil_typepermissive *typeperm = current->data;
607 rc = cil_resolve_name(current, typeperm->type_str, CIL_SYM_TYPES, extra_args, &type_datum);
628 int cil_resolve_nametypetransition(struct cil_tree_node *current, void *extra_args)
631 struct cil_nametypetransition *nametypetrans = current->data;
640 rc = cil_resolve_name(current, nametypetrans->src_str, CIL_SYM_TYPES, extra_args, &src_datum);
649 rc = cil_resolve_name(current, nametypetrans->tgt_str, CIL_SYM_TYPES, extra_args, &tgt_datum);
656 rc = cil_resolve_name(current, nametypetrans->obj_str, CIL_SYM_CLASSES, extra_args, &obj_datum);
662 nametypetrans->name = __cil_insert_name(args->db, nametypetrans->name_str, current);
664 rc = cil_resolve_name(current, nametypetrans->name_str, CIL_SYM_NAMES, extra_args, &name_datum);
671 rc = cil_resolve_name(current, nametypetrans->result_str, CIL_SYM_TYPES, extra_args, &result_datum);
691 int cil_resolve_rangetransition(struct cil_tree_node *current, void *extra_args)
693 struct cil_rangetransition *rangetrans = current->data;
700 rc = cil_resolve_name(current, rangetrans->src_str, CIL_SYM_TYPES, extra_args, &src_datum);
706 rc = cil_resolve_name(current, rangetrans->exec_str, CIL_SYM_TYPES, extra_args, &exec_datum);
712 rc = cil_resolve_name(current, rangetrans->obj_str, CIL_SYM_CLASSES, extra_args, &obj_datum);
719 rc = cil_resolve_name(current, rangetrans->range_str, CIL_SYM_LEVELRANGES, extra_args, &range_datum);
727 rc = cil_resolve_levelrange(current, rangetrans->range, extra_args);
733 rc = cil_resolve_levelrange(current, rangetrans->range, extra_args);
754 int cil_resolve_classcommon(struct cil_tree_node *current, void *extra_args)
758 struct cil_classcommon *clscom = current->data;
763 rc = cil_resolve_name(current, clscom->class_str, CIL_SYM_CLASSES, extra_args, &class_datum);
773 rc = cil_resolve_name(current, clscom->common_str, CIL_SYM_COMMONS, extra_args, &common_datum);
792 cil_tree_log(current, CIL_ERR, "Too many permissions in class '%s' when including common permissions", class->datum.name);
803 int cil_resolve_classmapping(struct cil_tree_node *current, void *extra_args)
806 struct cil_classmapping *mapping = current->data;
812 rc = cil_resolve_name(current, mapping->map_class_str, CIL_SYM_CLASSES, extra_args, &datum);
825 rc = cil_resolve_classperms_list(current, mapping->classperms, extra_args);
844 int cil_resolve_userrole(struct cil_tree_node *current, void *extra_args)
846 struct cil_userrole *userrole = current->data;
851 rc = cil_resolve_name(current, userrole->user_str, CIL_SYM_USERS, extra_args, &user_datum);
857 rc = cil_resolve_name(current, userrole->role_str, CIL_SYM_ROLES, extra_args, &role_datum);
869 int cil_resolve_userlevel(struct cil_tree_node *current, void *extra_args)
871 struct cil_userlevel *usrlvl = current->data;
878 rc = cil_resolve_name(current, usrlvl->user_str, CIL_SYM_USERS, extra_args, &user_datum);
894 rc = cil_resolve_name(current, usrlvl->level_str, CIL_SYM_LEVELS, extra_args, &lvl_datum);
903 rc = cil_resolve_level(current, user->dftlevel, extra_args);
909 rc = cil_resolve_level(current, usrlvl->level, extra_args);
922 int cil_resolve_userrange(struct cil_tree_node *current, void *extra_args)
924 struct cil_userrange *userrange = current->data;
931 rc = cil_resolve_name(current, userrange->user_str, CIL_SYM_USERS, extra_args, &user_datum);
947 rc = cil_resolve_name(current, userrange->range_str, CIL_SYM_LEVELRANGES, extra_args, &range_datum);
956 rc = cil_resolve_levelrange(current, user->range, extra_args);
962 rc = cil_resolve_levelrange(current, userrange->range, extra_args);
975 int cil_resolve_userprefix(struct cil_tree_node *current, void *extra_args)
977 struct cil_userprefix *userprefix = current->data;
982 rc = cil_resolve_name(current, userprefix->user_str, CIL_SYM_USERS, extra_args, &user_datum);
1001 int cil_resolve_selinuxuser(struct cil_tree_node *current, void *extra_args)
1003 struct cil_selinuxuser *selinuxuser = current->data;
1009 rc = cil_resolve_name(current, selinuxuser->user_str, CIL_SYM_USERS, extra_args, &user_datum);
1025 rc = cil_resolve_name(current, selinuxuser->range_str, CIL_SYM_LEVELRANGES, extra_args, &lvlrange_datum);
1033 rc = cil_resolve_levelrange(current, selinuxuser->range, extra_args);
1039 rc = cil_resolve_levelrange(current, selinuxuser->range, extra_args);
1050 int cil_resolve_roletype(struct cil_tree_node *current, void *extra_args)
1052 struct cil_roletype *roletype = current->data;
1057 rc = cil_resolve_name(current, roletype->role_str, CIL_SYM_ROLES, extra_args, &role_datum);
1063 rc = cil_resolve_name(current, roletype->type_str, CIL_SYM_TYPES, extra_args, &type_datum);
1075 int cil_resolve_roletransition(struct cil_tree_node *current, void *extra_args)
1077 struct cil_roletransition *roletrans = current->data;
1085 rc = cil_resolve_name(current, roletrans->src_str, CIL_SYM_ROLES, extra_args, &src_datum);
1091 rc = cil_resolve_name(current, roletrans->tgt_str, CIL_SYM_TYPES, extra_args, &tgt_datum);
1097 rc = cil_resolve_name(current, roletrans->obj_str, CIL_SYM_CLASSES, extra_args, &obj_datum);
1103 rc = cil_resolve_name(current, roletrans->result_str, CIL_SYM_ROLES, extra_args, &result_datum);
1121 int cil_resolve_roleallow(struct cil_tree_node *current, void *extra_args)
1123 struct cil_roleallow *roleallow = current->data;
1128 rc = cil_resolve_name(current, roleallow->src_str, CIL_SYM_ROLES, extra_args, &src_datum);
1134 rc = cil_resolve_name(current, roleallow->tgt_str, CIL_SYM_ROLES, extra_args, &tgt_datum);
1146 int cil_resolve_roleattributeset(struct cil_tree_node *current, void *extra_args)
1149 struct cil_roleattributeset *attrroles = current->data;
1154 rc = cil_resolve_name(current, attrroles->attr_str, CIL_SYM_ROLES, extra_args, &attr_datum);
1167 rc = cil_resolve_expr(CIL_ROLEATTRIBUTESET, attrroles->str_expr, &attrroles->datum_expr, current, extra_args);
1477 int cil_resolve_classorder(struct cil_tree_node *current, void *extra_args)
1482 struct cil_classorder *classorder = current->data;
1498 rc = cil_resolve_name(current, (char *)curr->data, CIL_SYM_CLASSES, extra_args, &datum);
1514 class_list->node = current;
1528 int cil_resolve_sidorder(struct cil_tree_node *current, void *extra_args)
1532 struct cil_sidorder *sidorder = current->data;
1542 rc = cil_resolve_name(current, (char *)curr->data, CIL_SYM_SIDS, extra_args, &datum);
1558 ordered->node = current;
1582 int cil_resolve_catorder(struct cil_tree_node *current, void *extra_args)
1586 struct cil_catorder *catorder = current->data;
1598 rc = cil_resolve_name(current, (char *)curr->data, CIL_SYM_CATS, extra_args, &cat_datum);
1615 ordered->node = current;
1625 int cil_resolve_sensitivityorder(struct cil_tree_node *current, void *extra_args)
1629 struct cil_sensorder *sensorder = current->data;
1639 rc = cil_resolve_name(current, (char *)curr->data, CIL_SYM_SENS, extra_args, &datum);
1654 ordered->node = current;
1664 static int cil_resolve_cats(struct cil_tree_node *current, struct cil_cats *cats, void *extra_args)
1668 rc = cil_resolve_expr(CIL_CATSET, cats->str_expr, &cats->datum_expr, current, extra_args);
1680 int cil_resolve_catset(struct cil_tree_node *current, struct cil_catset *catset, void *extra_args)
1682 return cil_resolve_cats(current, catset->cats, extra_args);
1685 int cil_resolve_senscat(struct cil_tree_node *current, void *extra_args)
1688 struct cil_senscat *senscat = current->data;
1692 rc = cil_resolve_name(current, (char*)senscat->sens_str, CIL_SYM_SENS, extra_args, &sens_datum);
1698 rc = cil_resolve_cats(current, senscat->cats, extra_args);
1717 int cil_resolve_level(struct cil_tree_node *current, struct cil_level *level, void *extra_args)
1726 rc = cil_resolve_name(current, (char*)level->sens_str, CIL_SYM_SENS, extra_args, &sens_datum);
1735 rc = cil_resolve_cats(current, level->cats, extra_args);
1747 int cil_resolve_levelrange(struct cil_tree_node *current, struct cil_levelrange *lvlrange, void *extra_args)
1754 rc = cil_resolve_name(current, lvlrange->low_str, CIL_SYM_LEVELS, extra_args, &low_datum);
1762 rc = cil_resolve_level(current, lvlrange->low, extra_args);
1768 rc = cil_resolve_level(current, lvlrange->low, extra_args);
1775 rc = cil_resolve_name(current, lvlrange->high_str, CIL_SYM_LEVELS, extra_args, &high_datum);
1783 rc = cil_resolve_level(current, lvlrange->high, extra_args);
1789 rc = cil_resolve_level(current, lvlrange->high, extra_args);
1801 int cil_resolve_constrain(struct cil_tree_node *current, void *extra_args)
1803 struct cil_constrain *cons = current->data;
1806 rc = cil_resolve_classperms_list(current, cons->classperms, extra_args);
1811 rc = cil_resolve_expr(CIL_CONSTRAIN, cons->str_expr, &cons->datum_expr, current, extra_args);
1822 int cil_resolve_validatetrans(struct cil_tree_node *current, void *extra_args)
1824 struct cil_validatetrans *validtrans = current->data;
1829 rc = cil_resolve_name(current, validtrans->class_str, CIL_SYM_CLASSES, args, &class_datum);
1835 rc = cil_resolve_expr(CIL_VALIDATETRANS, validtrans->str_expr, &validtrans->datum_expr, current, extra_args);
1846 int cil_resolve_context(struct cil_tree_node *current, struct cil_context *context, void *extra_args)
1856 rc = cil_resolve_name(current, context->user_str, CIL_SYM_USERS, extra_args, &user_datum);
1871 rc = cil_resolve_name(current, context->role_str, CIL_SYM_ROLES, extra_args, &role_datum);
1885 rc = cil_resolve_name(current, context->type_str, CIL_SYM_TYPES, extra_args, &type_datum);
1900 rc = cil_resolve_name(current, context->range_str, CIL_SYM_LEVELRANGES, extra_args, &lvlrange_datum);
1908 rc = cil_resolve_levelrange(current, context->range, extra_args);
1914 rc = cil_resolve_levelrange(current, context->range, extra_args);
1926 int cil_resolve_filecon(struct cil_tree_node *current, void *extra_args)
1928 struct cil_filecon *filecon = current->data;
1933 rc = cil_resolve_name(current, filecon->context_str, CIL_SYM_CONTEXTS, extra_args, &context_datum);
1939 rc = cil_resolve_context(current, filecon->context, extra_args);
1948 int cil_resolve_ibpkeycon(struct cil_tree_node *current, void *extra_args)
1950 struct cil_ibpkeycon *ibpkeycon = current->data;
1955 rc = cil_resolve_name(current, ibpkeycon->context_str, CIL_SYM_CONTEXTS, extra_args, &context_datum);
1961 rc = cil_resolve_context(current, ibpkeycon->context, extra_args);
1972 int cil_resolve_portcon(struct cil_tree_node *current, void *extra_args)
1974 struct cil_portcon *portcon = current->data;
1979 rc = cil_resolve_name(current, portcon->context_str, CIL_SYM_CONTEXTS, extra_args, &context_datum);
1985 rc = cil_resolve_context(current, portcon->context, extra_args);
1997 int cil_resolve_genfscon(struct cil_tree_node *current, void *extra_args)
1999 struct cil_genfscon *genfscon = current->data;
2004 rc = cil_resolve_name(current, genfscon->context_str, CIL_SYM_CONTEXTS, extra_args, &context_datum);
2010 rc = cil_resolve_context(current, genfscon->context, extra_args);
2022 int cil_resolve_nodecon(struct cil_tree_node *current, void *extra_args)
2024 struct cil_nodecon *nodecon = current->data;
2031 rc = cil_resolve_name(current, nodecon->addr_str, CIL_SYM_IPADDRS, extra_args, &addr_datum);
2039 rc = cil_resolve_name(current, nodecon->mask_str, CIL_SYM_IPADDRS, extra_args, &mask_datum);
2047 rc = cil_resolve_name(current, nodecon->context_str, CIL_SYM_CONTEXTS, extra_args, &context_datum);
2053 rc = cil_resolve_context(current, nodecon->context, extra_args);
2072 int cil_resolve_netifcon(struct cil_tree_node *current, void *extra_args)
2074 struct cil_netifcon *netifcon = current->data;
2081 rc = cil_resolve_name(current, netifcon->if_context_str, CIL_SYM_CONTEXTS, extra_args, &ifcon_datum);
2087 rc = cil_resolve_context(current, netifcon->if_context, extra_args);
2094 rc = cil_resolve_name(current, netifcon->packet_context_str, CIL_SYM_CONTEXTS, extra_args, &packcon_datum);
2100 rc = cil_resolve_context(current, netifcon->packet_context, extra_args);
2111 int cil_resolve_ibendportcon(struct cil_tree_node *current, void *extra_args)
2113 struct cil_ibendportcon *ibendportcon = current->data;
2119 rc = cil_resolve_name(current, ibendportcon->context_str, CIL_SYM_CONTEXTS, extra_args, &con_datum);
2125 rc = cil_resolve_context(current, ibendportcon->context, extra_args);
2136 int cil_resolve_pirqcon(struct cil_tree_node *current, void *extra_args)
2138 struct cil_pirqcon *pirqcon = current->data;
2143 rc = cil_resolve_name(current, pirqcon->context_str, CIL_SYM_CONTEXTS, extra_args, &context_datum);
2149 rc = cil_resolve_context(current, pirqcon->context, extra_args);
2161 int cil_resolve_iomemcon(struct cil_tree_node *current, void *extra_args)
2163 struct cil_iomemcon *iomemcon = current->data;
2168 rc = cil_resolve_name(current, iomemcon->context_str, CIL_SYM_CONTEXTS, extra_args, &context_datum);
2174 rc = cil_resolve_context(current, iomemcon->context, extra_args);
2186 int cil_resolve_ioportcon(struct cil_tree_node *current, void *extra_args)
2188 struct cil_ioportcon *ioportcon = current->data;
2193 rc = cil_resolve_name(current, ioportcon->context_str, CIL_SYM_CONTEXTS, extra_args, &context_datum);
2199 rc = cil_resolve_context(current, ioportcon->context, extra_args);
2211 int cil_resolve_pcidevicecon(struct cil_tree_node *current, void *extra_args)
2213 struct cil_pcidevicecon *pcidevicecon = current->data;
2218 rc = cil_resolve_name(current, pcidevicecon->context_str, CIL_SYM_CONTEXTS, extra_args, &context_datum);
2224 rc = cil_resolve_context(current, pcidevicecon->context, extra_args);
2236 static int cil_resolve_devicetreecon(struct cil_tree_node *current, void *extra_args)
2238 struct cil_devicetreecon *devicetreecon = current->data;
2243 rc = cil_resolve_name(current, devicetreecon->context_str, CIL_SYM_CONTEXTS, extra_args, &context_datum);
2249 rc = cil_resolve_context(current, devicetreecon->context, extra_args);
2261 int cil_resolve_fsuse(struct cil_tree_node *current, void *extra_args)
2263 struct cil_fsuse *fsuse = current->data;
2268 rc = cil_resolve_name(current, fsuse->context_str, CIL_SYM_CONTEXTS, extra_args, &context_datum);
2274 rc = cil_resolve_context(current, fsuse->context, extra_args);
2286 int cil_resolve_sidcontext(struct cil_tree_node *current, void *extra_args)
2288 struct cil_sidcontext *sidcon = current->data;
2295 rc = cil_resolve_name(current, sidcon->sid_str, CIL_SYM_SIDS, extra_args, &sid_datum);
2302 rc = cil_resolve_name(current, sidcon->context_str, CIL_SYM_CONTEXTS, extra_args, &context_datum);
2308 rc = cil_resolve_context(current, sidcon->context, extra_args);
2328 static int cil_resolve_blockinherit_link(struct cil_tree_node *current, void *extra_args)
2330 struct cil_blockinherit *inherit = current->data;
2335 rc = cil_resolve_name(current, inherit->block_str, CIL_SYM_BLOCKS, extra_args, &block_datum);
2353 cil_list_append(inherit->block->bi_nodes, CIL_NODE, current);
2361 static int cil_resolve_blockinherit_copy(struct cil_tree_node *current, void *extra_args)
2363 struct cil_block *block = current->data;
2378 if (current != block->datum.nodes->head->data) {
2384 rc = cil_copy_ast(db, current, item->data);
2410 static int cil_resolve_blockabstract(struct cil_tree_node *current, void *extra_args)
2412 struct cil_blockabstract *abstract = current->data;
2418 rc = cil_resolve_name(current, abstract->block_str, CIL_SYM_BLOCKS, extra_args, &block_datum);
2438 int cil_resolve_in(struct cil_tree_node *current, void *extra_args)
2440 struct cil_in *in = current->data;
2451 rc = cil_resolve_name(current, in->block_str, CIL_SYM_BLOCKS, extra_args, &block_datum);
2460 cil_tree_log(current, CIL_ERR, "Multiple optional blocks referred to by in-statement");
2467 rc = cil_copy_ast(db, current, block_node);
2469 cil_tree_log(current, CIL_ERR, "Failed to copy in-statement");
2473 cil_tree_children_destroy(current);
2535 static int cil_resolve_bounds(struct cil_tree_node *current, void *extra_args, enum cil_flavor flavor, enum cil_flavor attr_flavor)
2538 struct cil_bounds *bounds = current->data;
2548 rc = cil_resolve_name(current, bounds->parent_str, index, extra_args, &parent_datum);
2559 rc = cil_resolve_name(current, bounds->child_str, index, extra_args, &child_datum);
2613 cil_tree_log(current, CIL_ERR, "Bad bounds statement");
2617 static int cil_resolve_default(struct cil_tree_node *current, void *extra_args)
2620 struct cil_default *def = current->data;
2627 rc = cil_resolve_name(current, (char *)curr->data, CIL_SYM_CLASSES, extra_args, &datum);
2640 static int cil_resolve_defaultrange(struct cil_tree_node *current, void *extra_args)
2643 struct cil_defaultrange *def = current->data;
2650 rc = cil_resolve_name(current, (char *)curr->data, CIL_SYM_CLASSES, extra_args, &datum);
3034 static int cil_resolve_call(struct cil_tree_node *current, void *extra_args)
3036 struct cil_call *call = current->data;
3046 rc = cil_resolve_name(current, call->macro_str, CIL_SYM_BLOCKS, extra_args, &macro_datum);
3054 cil_tree_log(current, CIL_ERR, "Failed to resolve %s to a macro", call->macro_str);
3060 rc = cil_build_call_args(current, call, call->macro, extra_args);
3065 rc = cil_check_recursive_call(current, macro_node);
3070 rc = cil_copy_ast(args->db, macro_node, current);
3072 cil_tree_log(current, CIL_ERR, "Failed to copy macro %s to call", macro_datum->name);
3084 static int cil_resolve_call_args(struct cil_tree_node *current, void *extra_args)
3086 struct cil_call *call = current->data;
3181 rc = cil_resolve_name(current, arg->arg_str, sym_index, extra_args, &datum);
3183 cil_tree_log(current, CIL_ERR, "Failed to resolve %s in call argument list", arg->arg_str);
3189 if (n == current) {
3196 rc = cil_resolve_name(current, arg->arg_str, sym_index, extra_args, &(arg->arg));
3198 cil_tree_log(current, CIL_ERR, "Failed to resolve %s in call argument list", arg->arg_str);
3203 cil_tree_log(current, CIL_ERR, "Failed to re-insert datum while resolving %s in call argument list", arg->arg_str);
3342 int cil_resolve_boolif(struct cil_tree_node *current, void *extra_args)
3345 struct cil_booleanif *bif = (struct cil_booleanif*)current->data;
3347 rc = cil_resolve_expr(CIL_BOOLEANIF, bif->str_expr, &bif->datum_expr, current, extra_args);
3407 int cil_resolve_tunif(struct cil_tree_node *current, void *extra_args)
3412 struct cil_tunableif *tif = (struct cil_tunableif*)current->data;
3422 rc = cil_resolve_expr(CIL_TUNABLEIF, tif->str_expr, &tif->datum_expr, current, extra_args);
3429 if (current->cl_head != NULL && current->cl_head->flavor == CIL_CONDBLOCK) {
3430 cb = current->cl_head->data;
3432 true_node = current->cl_head;
3434 false_node = current->cl_head;
3438 if (current->cl_head != NULL && current->cl_head->next != NULL && current->cl_head->next->flavor == CIL_CONDBLOCK) {
3439 cb = current->cl_head->next->data;
3441 true_node = current->cl_head->next;
3443 false_node = current->cl_head->next;
3449 rc = cil_copy_ast(db, true_node, current->parent);
3456 rc = cil_copy_ast(db, false_node, current->parent);
3463 cil_tree_children_destroy(current);
3464 current->cl_head = NULL;
3465 current->cl_tail = NULL;
3473 int cil_resolve_userattributeset(struct cil_tree_node *current, void *extra_args)
3476 struct cil_userattributeset *attrusers = current->data;
3481 rc = cil_resolve_name(current, attrusers->attr_str, CIL_SYM_USERS, extra_args, &attr_datum);
3494 rc = cil_resolve_expr(CIL_USERATTRIBUTESET, attrusers->str_expr, &attrusers->datum_expr, current, extra_args);
4012 static int __cil_resolve_ast_first_child_helper(struct cil_tree_node *current, void *extra_args)
4018 if (current == NULL || extra_args == NULL) {
4022 parent = current->parent;
4041 static int __cil_resolve_ast_last_child_helper(struct cil_tree_node *current, void *extra_args)
4047 if (current == NULL || extra_args == NULL) {
4051 parent = current->parent;
4090 int cil_resolve_ast(struct cil_db *db, struct cil_tree_node *current)
4097 if (db == NULL || current == NULL) {
4130 rc = cil_tree_walk(current, __cil_resolve_ast_node_helper, __cil_resolve_ast_first_child_helper, __cil_resolve_ast_last_child_helper, &extra_args);
4158 rc = cil_check_for_bad_inheritance(current);
4188 rc = __cil_verify_ordered(current, CIL_SID);
4193 rc = __cil_verify_ordered(current, CIL_CLASS);
4198 rc = __cil_verify_ordered(current, CIL_CAT);
4203 rc = __cil_verify_ordered(current, CIL_SENS);
4244 rc = cil_reset_ast(current);
4415 char *current = strtok_r(name_dup, ".", &sp);
4419 if (current == NULL) {
4431 rc = __cil_resolve_name_helper(db, node->parent, current, CIL_SYM_BLOCKS, datum);
4440 rc = cil_symtab_get_datum(symtab, current, datum);
4460 current = next;
4464 rc = cil_symtab_get_datum(symtab, current, datum);