mirror of
https://gitlab.com/apparmor/apparmor.git
synced 2025-03-04 08:24:42 +01:00
Fix screening of change_profile permission from file rule entries
While change_profile rules are always created separately from file rules. The merge phase can result in change_profile rules merging with file rules, resulting in the change_profile permission being set when a file rule is created. Make sure to screen off the change_profile permission, when creating a file rule. Note: the proper long term fix is to split file, link and change_profile rules into their own classes. Signed-off-by: John Johansen <john.johansen@canonical.com> Acked-by: Steve Beattie <steve@nxnw.org>
This commit is contained in:
parent
6707489cdc
commit
899cea3396
1 changed files with 3 additions and 2 deletions
|
@ -532,8 +532,9 @@ static int process_dfa_entry(aare_rules *dfarules, struct cod_entry *entry)
|
||||||
if (entry->deny) {
|
if (entry->deny) {
|
||||||
if ((entry->mode & ~(AA_LINK_BITS | AA_CHANGE_PROFILE)) &&
|
if ((entry->mode & ~(AA_LINK_BITS | AA_CHANGE_PROFILE)) &&
|
||||||
!dfarules->add_rule(tbuf.c_str(), entry->deny,
|
!dfarules->add_rule(tbuf.c_str(), entry->deny,
|
||||||
entry->mode & ~AA_LINK_BITS,
|
entry->mode & ~(AA_LINK_BITS | AA_CHANGE_PROFILE),
|
||||||
entry->audit & ~AA_LINK_BITS, dfaflags))
|
entry->audit & ~(AA_LINK_BITS | AA_CHANGE_PROFILE),
|
||||||
|
dfaflags))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
} else if (entry->mode & ~AA_CHANGE_PROFILE) {
|
} else if (entry->mode & ~AA_CHANGE_PROFILE) {
|
||||||
if (!dfarules->add_rule(tbuf.c_str(), entry->deny, entry->mode,
|
if (!dfarules->add_rule(tbuf.c_str(), entry->deny, entry->mode,
|
||||||
|
|
Loading…
Add table
Reference in a new issue