> It is too bad that all of the
> profiles have to be fully parsed just to use basic utilities that don't
> necessarily care about the rules inside of a profile.
The main problem is that we allow "random" filenames for the profiles,
so we need to check all files for the to-be-changed profile - but you
probably already know that.
Yes, in theory we could just parse the headers and ignore the profile
content, but that would mean that we need a (simplified, but still) copy
of the profile parsing code.
> While not perfect, I think this is a better approach than refusing to
> parse valid profiles that have existed for quite a few years. What do
> you think?
I'm not the biggest fan of this workaround. Having the tools error out
on invalid rules like your example would be much better - especially
because such a rule will automagically be changed when saving the
profile without any warning. Nevertheless, replacing "break the tools
completely" with "unexpected bevaviour on invalid rules" still is a
small improvement.
FYI: FileRule accepts the permissions in any order, so maybe you could
look at how it's done there. (Needless to say that having a list of
possible permissions is easier to handle, but maybe it helps
nevertheless.)
Please don't forget to run "make check" for the utils ;-)
BTW: Does your patch also work for something like
dbus bus=session bind bus=system,
--
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to apparmor-easyprof-ubuntu
in Ubuntu.
https://bugs.launchpad.net/bugs/1628286
Title:
[utils] DBus rules enforce stricter ordering of dbus attributes
Status in AppArmor:
In Progress
Status in apparmor-easyprof-ubuntu package in Ubuntu:
Won't Fix
Bug description:
The DBus rules data strutures added recently (after the 2.10.95 beta 1
release) include a more strcit interpretation of dbus attribute
ordering than before and is more strict than the parser:
[parser]$ cat /tmp/aa-test-dir/test.profile
profile t /t {
dbus (receive, send) path=/com/canonical/UbuntuAppLaunch/* bus=session,
}
[parser]$ ./apparmor_parser -QK -d /tmp/aa-test-dir/test.profile
----- Debugging built structures -----
Name: t
Profile Mode: Enforce
dbus ( send receive ) bus="session" path="/com/canonical/UbuntuAppLaunch/*",
[parser]$ ./apparmor_parser --version
AppArmor parser version 2.10.95
Copyright (C) 1999-2008 Novell Inc.
Copyright 2009-2012 Canonical Ltd.
[parser]$ cd ../utils/
[utils]$ PYTHONPATH=. python3 ./aa-logprof -d /tmp/aa-test-dir
Reading log entries from /var/log/syslog.
Updating AppArmor profiles in /tmp/aa-test-dir.
ERROR: Invalid or unknown keywords in 'dbus (receive, send)
path=/com/canonical/UbuntuAppLaunch/* bus=session
To manage notifications about this bug go to:
https://bugs.launchpad.net/apparmor/+bug/1628286/+subscriptions
--
Mailing list: https://launchpad.net/~touch-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~touch-packages
More help : https://help.launchpad.net/ListHelp