diff --git a/parser/parser_include.c b/parser/parser_include.c index 8a6659194..9a1abe1a1 100644 --- a/parser/parser_include.c +++ b/parser/parser_include.c @@ -284,7 +284,7 @@ static void start_include_position(char *filename) if (current_filename) free(current_filename); current_filename = strdup(filename ? filename : "stdin"); - current_lineno = 0; + current_lineno = 1; } void push_include_stack(char *filename) diff --git a/parser/parser_lex.l b/parser/parser_lex.l index 87dfe3974..5034bd4cd 100644 --- a/parser/parser_lex.l +++ b/parser/parser_lex.l @@ -49,7 +49,7 @@ #endif #define NPDEBUG(fmt, args...) /* Do nothing */ -int current_lineno = 0; +int current_lineno = 1; char *current_filename = NULL; struct ignored_suffix_t { @@ -427,7 +427,6 @@ LT_EQUAL <= #include/.*\r?\n { /* include */ PDEBUG("Matched #include\n"); - current_lineno++; BEGIN(INCLUDE); } diff --git a/parser/tst/Makefile b/parser/tst/Makefile index de2c315ff..0fffe582b 100644 --- a/parser/tst/Makefile +++ b/parser/tst/Makefile @@ -20,6 +20,10 @@ error_output: $(PARSER) grep -q "AppArmor parser error for errors/single.sd in errors/single.sd at line 3: Could not open 'failure'" LANG=C $(PARSER) -S -I errors 2>&1 >/dev/null errors/double.sd | \ grep -q "AppArmor parser error for errors/double.sd in errors/includes/busted at line 67: Could not open 'does-not-exist'" + LANG=C $(PARSER) -S -I errors 2>&1 >/dev/null errors/modefail.sd | \ + grep -q "AppArmor parser error for errors/modefail.sd in errors/modefail.sd at line 6: syntax error" + LANG=C $(PARSER) -S -I errors 2>&1 >/dev/null errors/multi_include.sd | \ + grep -q "AppArmor parser error for errors/multi_include.sd in errors/multi_include.sd at line 12: Could not open 'failure'" @echo "Error Output: PASS" parser_sanity: $(PARSER) diff --git a/parser/tst/errors/modefail.sd b/parser/tst/errors/modefail.sd new file mode 100644 index 000000000..21280c228 --- /dev/null +++ b/parser/tst/errors/modefail.sd @@ -0,0 +1,7 @@ +# 1 +# 2 +# 3 +/does/not/exist { # 4 + /lib/lib*.so rm, # 5 + /fail abcdefgh, # 6 +} # 7 diff --git a/parser/tst/errors/multi_include.sd b/parser/tst/errors/multi_include.sd new file mode 100644 index 000000000..9eb4b5b26 --- /dev/null +++ b/parser/tst/errors/multi_include.sd @@ -0,0 +1,13 @@ +# +# +# +/does/not/exist { + #include + #include + #include + #include + + /bin/true rix, + + #include +}