mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 22:29:23 +00:00
lib: Fix use after free in lexer
Fix occasional bug where deleting flex's input buffer happens earlier than flex expects Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
parent
4427e9b3ee
commit
07079d78bc
@ -152,7 +152,6 @@ start:
|
|||||||
{
|
{
|
||||||
// tack on the command element
|
// tack on the command element
|
||||||
terminate_graph (startnode, currnode, element);
|
terminate_graph (startnode, currnode, element);
|
||||||
cleanup();
|
|
||||||
}
|
}
|
||||||
| sentence_root cmd_token_seq '.' placeholder_token
|
| sentence_root cmd_token_seq '.' placeholder_token
|
||||||
{
|
{
|
||||||
@ -165,7 +164,6 @@ start:
|
|||||||
|
|
||||||
// tack on the command element
|
// tack on the command element
|
||||||
terminate_graph (startnode, currnode, element);
|
terminate_graph (startnode, currnode, element);
|
||||||
cleanup();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sentence_root: WORD
|
sentence_root: WORD
|
||||||
@ -394,7 +392,10 @@ parse_command_format(struct graph_node *start, struct cmd_element *cmd)
|
|||||||
yydebug = 0;
|
yydebug = 0;
|
||||||
|
|
||||||
// parse command into DFA
|
// parse command into DFA
|
||||||
yyparse(cmd, start);
|
yyparse (cmd, start);
|
||||||
|
|
||||||
|
/* cleanup */
|
||||||
|
cleanup ();
|
||||||
|
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
@ -416,7 +417,7 @@ cleanup()
|
|||||||
free (docstr_start);
|
free (docstr_start);
|
||||||
|
|
||||||
/* cleanup lexer */
|
/* cleanup lexer */
|
||||||
cleanup_lexer();
|
cleanup_lexer ();
|
||||||
|
|
||||||
/* clear state pointers */
|
/* clear state pointers */
|
||||||
seqhead = NULL;
|
seqhead = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user