mirror of
https://github.com/topjohnwu/selinux.git
synced 2024-12-04 01:20:52 +00:00
libsepol/cil: Store CIL filename in parse tree and AST
Use some of the functionality recently added to support high-level language line marking to track the CIL filename. The goal is to eventually remove the path field from the tree node struct and offset the addtion of the hll_line field. Signed-off-by: James Carter <jwcart2@tycho.nsa.gov>
This commit is contained in:
parent
875a6bcbe8
commit
681341f2f4
@ -179,6 +179,24 @@ exit:
|
||||
return SEPOL_ERR;
|
||||
}
|
||||
|
||||
static void add_cil_path(struct cil_tree_node **current, char *path)
|
||||
{
|
||||
struct cil_tree_node *node;
|
||||
|
||||
create_node(&node, *current, 0, 0, path, NULL);
|
||||
insert_node(node, *current);
|
||||
*current = node;
|
||||
|
||||
create_node(&node, *current, 0, 0, path, CIL_KEY_SRC_INFO);
|
||||
insert_node(node, *current);
|
||||
|
||||
create_node(&node, *current, 0, 0, path, CIL_KEY_SRC_CIL);
|
||||
insert_node(node, *current);
|
||||
|
||||
create_node(&node, *current, 0, 0, path, path);
|
||||
insert_node(node, *current);
|
||||
}
|
||||
|
||||
int cil_parser(char *_path, char *buffer, uint32_t size, struct cil_tree **parse_tree)
|
||||
{
|
||||
|
||||
@ -205,6 +223,8 @@ int cil_parser(char *_path, char *buffer, uint32_t size, struct cil_tree **parse
|
||||
tree = *parse_tree;
|
||||
current = tree->root;
|
||||
|
||||
add_cil_path(¤t, path);
|
||||
|
||||
do {
|
||||
cil_lexer_next(&tok);
|
||||
switch (tok.type) {
|
||||
|
Loading…
Reference in New Issue
Block a user