mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
zeek-setup: Early exit when parsing failed
When there are errors reported during yyparse(), Zeek still continued running initialization functions like init_general_global_var(), init_net_var() and run_bif_initializers(). These usually call abort() in unexpected situations causing misleading and confusing errors. This patch prevents this by exiting earlier. Closes #3316
This commit is contained in:
parent
c6486e70ef
commit
12e0dc110b
1 changed files with 4 additions and 1 deletions
|
@ -820,13 +820,16 @@ SetupResult setup(int argc, char** argv, Options* zopts)
|
||||||
// when we actually end up reading interactively from stdin.
|
// when we actually end up reading interactively from stdin.
|
||||||
set_signal_mask(false);
|
set_signal_mask(false);
|
||||||
run_state::is_parsing = true;
|
run_state::is_parsing = true;
|
||||||
yyparse();
|
int yyparse_result = yyparse();
|
||||||
run_state::is_parsing = false;
|
run_state::is_parsing = false;
|
||||||
set_signal_mask(true);
|
set_signal_mask(true);
|
||||||
|
|
||||||
RecordVal::DoneParsing();
|
RecordVal::DoneParsing();
|
||||||
TableVal::DoneParsing();
|
TableVal::DoneParsing();
|
||||||
|
|
||||||
|
if ( yyparse_result != 0 || zeek::reporter->Errors() > 0 )
|
||||||
|
exit(1);
|
||||||
|
|
||||||
init_general_global_var();
|
init_general_global_var();
|
||||||
init_net_var();
|
init_net_var();
|
||||||
run_bif_initializers();
|
run_bif_initializers();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue