[apparmor] [Patch][parser]

Tyler Hicks tyhicks at canonical.com
Wed Sep 24 20:31:54 UTC 2014


On 2014-09-24 15:00:27, Tyler Hicks wrote:
> On 2014-09-24 11:32:33, John Johansen wrote:
> > Fix: Parser error when using regex profile names in IPC rules
> > 
> > BugLink: http://bugs.launchpad.net/bugs/1373085
> > 
> > The parser fails to accept certain characters, even when escaped or quoted
> > as part of the profile or label name in ipc rules. This is due to the
> > lexer not accepting those characters as part of the input pattern.
> > 
> > Signed-off-by: John Johansen <john.johansen at canonical.com>
> 
> Bug fixes like this should include tests.

This patch causes make check in the parser/ dir to fail:

  not ok 91 - ./simple_tests//dbus/bad_regex_03.sd: dbus rule with a bad peer regex expansion

The test is intended to make sure that this rule fails to compile:

  dbus send bus=session peer=(label=splat\ ),

However, it passes with the patch applied.

Here's the dfa-states dump:

$ echo "/t { dbus send bus=session peer=(label=splat\ ), }" |
./parser/apparmor_parser -qQD dfa-states
{1} <== (allow/deny/audit/quiet)
{2} (0x 4/0/0/0)
{3} (0x 4/0/0/0)
{23} (0x 2/0/0/0)

{1} -> {2}: 0x2
{1} -> {2}: 0x4
{1} -> {2}: 0x7
{1} -> {2}: 0x9
{1} -> {2}: 0xa
{1} -> {3}: 0x20 \ 
{1} -> {4}: 0x34 4
{3}  (0x 4/0/0/0) -> {5}: 0x73 s
{4} -> {6}: 0x0
{5} -> {7}: 0x65 e
{6} -> {2}: 0x31 1
{7} -> {8}: 0x73 s
{8} -> {9}: 0x73 s
{9} -> {10}: 0x69 i
{10} -> {11}: 0x6f o
{11} -> {12}: 0x6e n
{12} -> {13}: 0x0
{13} -> {14}: 0x0
{13} -> {13}: []
{14} -> {15}: 0x73 s
{15} -> {16}: 0x70 p
{16} -> {17}: 0x6c l
{17} -> {18}: 0x61 a
{18} -> {19}: 0x74 t
{19} -> {20}: 0x20 \ 
{20} -> {21}: 0x0
{21} -> {22}: 0x0
{21} -> {21}: []
{22} -> {23}: 0x0
{22} -> {22}: []
{23}  (0x 2/0/0/0) -> {23}: [^\0x0]

It seems to be doing the right thing by discarding the backslash and
including the space (0x20) as part of the match string.

I think this fix makes the test bad since we can now handle such a
sequence in the peer conditional, right?

Tyler
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <https://lists.ubuntu.com/archives/apparmor/attachments/20140924/48e51706/attachment.pgp>


More information about the AppArmor mailing list