On 06/24/2015 01:31 PM, Steve Beattie wrote:
> On Wed, Jun 17, 2015 at 02:41:30AM -0700, John Johansen wrote:
>> Fix the regression that caused using 'include' instead of '#include' for
>> includes to stop working.
>>
>> Signed-off-by: John Johansen <[email protected]>
>>
>> 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
>>       */ 
> 
> While I'm not rescinding my ack, this does introduce a new flex warning:
> 
> parser_lex.l:519: warning, dangerous trailing context
> 
thanks for catching that, I missed it completely and it is not good and worth
a nak

below is a fixed patch

---

commit 6aafc30b194f49db75b6abd9ee0c7780219a58b1
Author: John Johansen <[email protected]>
Date:   Sun Jun 14 00:58:51 2015 -0700

    Fix bare include keyword
    
    Fix the regression that caused using 'include' instead of '#include' for
    includes to stop working.
    
    Signed-off-by: John Johansen <[email protected]>

diff --git a/parser/parser_lex.l b/parser/parser_lex.l
index 2832a1c..8b0c436 100644
--- a/parser/parser_lex.l
+++ b/parser/parser_lex.l
@@ -519,7 +519,14 @@ LT_EQUAL   <=
 #include/.*\r?\n       {
        /* Don't use PUSH() macro here as we don't want #include echoed out.
         * It needs to be handled specially
-        */ 
+        */
+       yy_push_state(INCLUDE);
+}
+
+include/{WS}   {
+       /* Don't use PUSH() macro here as we don't want #include echoed out.
+        * It needs to be handled specially
+        */
        yy_push_state(INCLUDE);
 }
 
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>
+}

-- 
AppArmor mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/apparmor

Reply via email to