mirror of
https://github.com/SELinuxProject/selinux
synced 2025-01-19 03:40:50 +00:00
libsepol/cil: Check for valid line mark type immediately
It clearer to check that the line mark type is a valid option right after getting the token. Check that the line mark type is one of the expected values right awasy. Signed-off-by: James Carter <jwcart2@gmail.com>
This commit is contained in:
parent
2b988acf44
commit
4388801685
@ -116,6 +116,10 @@ static int add_hll_linemark(struct cil_tree_node **current, uint32_t *hll_lineno
|
||||
goto exit;
|
||||
}
|
||||
hll_type = cil_strpool_add(tok.value);
|
||||
if (hll_type != CIL_KEY_HLL_LME && hll_type != CIL_KEY_HLL_LMS && hll_type != CIL_KEY_HLL_LMX) {
|
||||
cil_log(CIL_ERR, "Invalid line mark syntax\n");
|
||||
goto exit;
|
||||
}
|
||||
if (hll_type == CIL_KEY_HLL_LME) {
|
||||
if (cil_stack_is_empty(stack)) {
|
||||
cil_log(CIL_ERR, "Line mark end without start\n");
|
||||
@ -134,15 +138,6 @@ static int add_hll_linemark(struct cil_tree_node **current, uint32_t *hll_lineno
|
||||
create_node(&node, *current, tok.line, *hll_lineno, CIL_KEY_SRC_HLL);
|
||||
insert_node(node, *current);
|
||||
|
||||
if (hll_type == CIL_KEY_HLL_LMS) {
|
||||
*hll_expand = 0;
|
||||
} else if (hll_type == CIL_KEY_HLL_LMX) {
|
||||
*hll_expand = 1;
|
||||
} else {
|
||||
cil_log(CIL_ERR, "Invalid line mark syntax\n");
|
||||
goto exit;
|
||||
}
|
||||
|
||||
cil_lexer_next(&tok);
|
||||
if (tok.type != SYMBOL) {
|
||||
cil_log(CIL_ERR, "Invalid line mark syntax\n");
|
||||
@ -161,6 +156,7 @@ static int add_hll_linemark(struct cil_tree_node **current, uint32_t *hll_lineno
|
||||
}
|
||||
#endif
|
||||
*hll_lineno = val;
|
||||
*hll_expand = (hll_type == CIL_KEY_HLL_LMX) ? 1 : 0;
|
||||
|
||||
push_hll_info(stack, *hll_lineno, *hll_expand);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user