[apparmor] [Patch] [Parser] Fix bare include keyword

John Johansen john.johansen at canonical.com
Wed Jun 17 09:41:30 UTC 2015


Fix the regression that caused using 'include' instead of '#include' for
includes to stop working.

Signed-off-by: John Johansen <john.johansen at canonical.com>

diff --git a/parser/parser_lex.l b/parser/parser_lex.l
index 5af788a..974548d 100644
--- a/parser/parser_lex.l
+++ b/parser/parser_lex.l
@@ -517,7 +517,7 @@ LT_EQUAL	<=
 	}
 }
 
-#include/.*\r?\n	{
+#?include/.*\r?\n	{
 	/* Don't use PUSH() macro here as we don't want #include echoed out.
 	 * It needs to be handled specially
 	 */ 
diff --git a/parser/tst/simple_tests/bare_include_tests/bad_1.sd b/parser/tst/simple_tests/bare_include_tests/bad_1.sd
new file mode 100644
index 0000000..71cb038
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/bad_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION includes testing - non-existent include should fail
+#=EXRESULT FAIL
+#
+/does/not/exist {
+  include <does-not-exist/does-not-exist>
+}
diff --git a/parser/tst/simple_tests/bare_include_tests/bad_2.sd b/parser/tst/simple_tests/bare_include_tests/bad_2.sd
new file mode 100644
index 0000000..5f62646
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/bad_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION includes testing - mis-parsing include should fail
+#=EXRESULT FAIL
+#
+/does/not/exist {
+  include does-not-exist/does-not-exist
+}
diff --git a/parser/tst/simple_tests/bare_include_tests/bad_3.sd b/parser/tst/simple_tests/bare_include_tests/bad_3.sd
new file mode 100644
index 0000000..254bf02
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/bad_3.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION includes testing - non-existent include should fail
+#=EXRESULT FAIL
+#
+/does/not/exist {
+  include <does-not-exist/does-not-exist>
+  include <includes/base>
+}
diff --git a/parser/tst/simple_tests/bare_include_tests/bad_4.sd b/parser/tst/simple_tests/bare_include_tests/bad_4.sd
new file mode 100644
index 0000000..e592764
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/bad_4.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION includes testing - non-existent include should fail
+#=EXRESULT FAIL
+#
+/does/not/exist {
+  include <includes/base>
+  include <does-not-exist/does-not-exist>
+}
diff --git a/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include.dpkg-bak b/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include.dpkg-bak
new file mode 100644
index 0000000..26f9e4c
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include.dpkg-bak
@@ -0,0 +1 @@
+THIS WILL NOT PARSE!
diff --git a/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include.dpkg-dist b/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include.dpkg-dist
new file mode 100644
index 0000000..26f9e4c
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include.dpkg-dist
@@ -0,0 +1 @@
+THIS WILL NOT PARSE!
diff --git a/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include.dpkg-new b/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include.dpkg-new
new file mode 100644
index 0000000..26f9e4c
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include.dpkg-new
@@ -0,0 +1 @@
+THIS WILL NOT PARSE!
diff --git a/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include.dpkg-old b/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include.dpkg-old
new file mode 100644
index 0000000..26f9e4c
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include.dpkg-old
@@ -0,0 +1 @@
+THIS WILL NOT PARSE!
diff --git a/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include.rpmnew b/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include.rpmnew
new file mode 100644
index 0000000..26f9e4c
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include.rpmnew
@@ -0,0 +1 @@
+THIS WILL NOT PARSE!
diff --git a/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include.rpmsave b/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include.rpmsave
new file mode 100644
index 0000000..26f9e4c
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include.rpmsave
@@ -0,0 +1 @@
+THIS WILL NOT PARSE!
diff --git a/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include~ b/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include~
new file mode 100644
index 0000000..26f9e4c
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/ignored_suffix/bad-include~
@@ -0,0 +1 @@
+THIS WILL NOT PARSE!
diff --git a/parser/tst/simple_tests/bare_include_tests/ignored_suffix/good-include b/parser/tst/simple_tests/bare_include_tests/ignored_suffix/good-include
new file mode 100644
index 0000000..08d3a9d
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/ignored_suffix/good-include
@@ -0,0 +1,2 @@
+# Valid include
+@{FOO} = /foo /bar
diff --git a/parser/tst/simple_tests/bare_include_tests/ignored_suffix_1.sd b/parser/tst/simple_tests/bare_include_tests/ignored_suffix_1.sd
new file mode 100644
index 0000000..c279c2c
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/ignored_suffix_1.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION includes testing - verify that ignored suffixes are ignored
+#=EXRESULT PASS
+#
+
+include <include_tests/ignored_suffix>
+
+/does/not/exist {
+  @{FOO} r,
+}
diff --git a/parser/tst/simple_tests/bare_include_tests/ignored_suffix_2.sd b/parser/tst/simple_tests/bare_include_tests/ignored_suffix_2.sd
new file mode 100644
index 0000000..7d7db10
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/ignored_suffix_2.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION includes testing - verify that only suffixes are ignored
+#=EXRESULT PASS
+#
+
+include <include_tests/ignored_suffix_2>
+
+/does/not/exist {
+  @{FOO} r,
+}
diff --git a/parser/tst/simple_tests/bare_include_tests/ignored_suffix_2/good.dpkg-new.include b/parser/tst/simple_tests/bare_include_tests/ignored_suffix_2/good.dpkg-new.include
new file mode 100644
index 0000000..08d3a9d
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/ignored_suffix_2/good.dpkg-new.include
@@ -0,0 +1,2 @@
+# Valid include
+@{FOO} = /foo /bar
diff --git a/parser/tst/simple_tests/bare_include_tests/includes_okay_helper.include b/parser/tst/simple_tests/bare_include_tests/includes_okay_helper.include
new file mode 100644
index 0000000..df102ce
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/includes_okay_helper.include
@@ -0,0 +1,6 @@
+#
+#=DESCRIPTION A helper for includes_okay.sd
+#
+  include <includes/fonts>
+
+  /tmp/** r,
diff --git a/parser/tst/simple_tests/bare_include_tests/ok_1.sd b/parser/tst/simple_tests/bare_include_tests/ok_1.sd
new file mode 100644
index 0000000..766038b
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/ok_1.sd
@@ -0,0 +1,9 @@
+#
+#=DESCRIPTION includes testing - basic include of global and local include
+#=EXRESULT PASS
+#
+/does/not/exist {
+  #include <includes/base>
+  #include <include_tests/includes_okay_helper.include>
+  #include <includes/base>
+}
diff --git a/parser/tst/simple_tests/bare_include_tests/ok_2.sd b/parser/tst/simple_tests/bare_include_tests/ok_2.sd
new file mode 100644
index 0000000..d382fa0
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/ok_2.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION includes testing - test some "odd" locations of includes
+#=EXRESULT PASS
+#
+/does/not/exist {
+  /does/not/exist mr,   #include <includes/base> /bin/true Px,
+  include <include_tests/includes_okay_helper.include> #include <includes/base>
+}
diff --git a/parser/tst/simple_tests/bare_include_tests/ok_3.sd b/parser/tst/simple_tests/bare_include_tests/ok_3.sd
new file mode 100644
index 0000000..854cfd4
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/ok_3.sd
@@ -0,0 +1,9 @@
+#
+#=DESCRIPTION includes testing - basic include of a directory
+#=EXRESULT PASS
+#
+/does/not/exist {
+  include <includes/base>
+  include <includes/>
+  include <includes/base>
+}
diff --git a/parser/tst/simple_tests/bare_include_tests/recursive.sd b/parser/tst/simple_tests/bare_include_tests/recursive.sd
new file mode 100644
index 0000000..83f033c
--- /dev/null
+++ b/parser/tst/simple_tests/bare_include_tests/recursive.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION includes testing - recursive include should fail
+#=EXRESULT FAIL
+#
+/does/not/exist {
+  include <include_tests/recursive.sd>
+}



More information about the AppArmor mailing list