apparmor/parser
John Johansen 4fb3dbc7b3 parser: improve unreachable state removal
Currently states are added to the reachable set when they are popped
from the workqueue. This however can result in states being
added to the work queue multiple times and reprocessed.

Eg. If state 2 has the transitions, and 9 is not in the reachable set
  a -> 9
  b -> 9
  c -> 9
  d -> 9
  e -> 3

then 9 will get pushed onto the work 4 times. Even worse other states
on the workqueue may also add state 9 to the workqueue because it has
not been added to the reachable set.

Instead add states to the reachable set when they are added to the
workqueue. The first encounter with a state will result in it being
reachable and all other encounters will see that it already in the set
and not add it to the workqueue.

Signed-off-by: John Johansen <john.johansen@canonical.com>
2025-01-01 17:16:17 -08:00
..
libapparmor_re parser: improve unreachable state removal 2025-01-01 17:16:17 -08:00
po parser: update translations pot file to current code 2024-09-03 03:39:16 -07:00
tst parser: equality tests: convert to using sha256sum for the hashes 2024-12-23 23:36:55 -08:00
aa-teardown aa-teardown: Replace /bin/bash with /bin/sh 2018-05-05 17:46:19 -07:00
aa-teardown.pod docs: update documentation to point bug reporting to gitlab 2020-05-05 00:10:53 -07:00
af_rule.cc parser: consolidate rule class handling into aa_class 2023-03-31 02:21:19 -07:00
af_rule.h parser: rework perms rule merging 2023-07-10 20:04:53 -07:00
af_unix.cc parser: add the ability to specify a priority prefix to rules 2024-08-14 17:15:24 -07:00
af_unix.h parser: add the ability to specify a priority prefix to rules 2024-08-14 17:15:24 -07:00
all_rule.cc parser: make ix of file, rule have lower priority so it can be overridden 2024-08-14 18:21:26 -07:00
all_rule.h parser: add the ability to specify a priority prefix to rules 2024-08-14 17:15:24 -07:00
apparmor.d.pod parser: add port range support on network policy 2024-09-05 17:01:46 -03:00
apparmor.pod Replace 'scrub the environment' wording in man pages with something more accurate 2024-08-28 11:22:08 -07:00
apparmor.service Add Documentation=... to apparmor.service 2023-10-29 10:49:33 +01:00
apparmor.systemd apparmor.systemd: fix shellcheck false positive 2024-04-30 18:30:01 -03:00
apparmor_parser.pod fix typo: aggressive 2024-03-29 10:52:25 +01:00
apparmor_xattrs.pod apparmor_xattrs.7: fix whatis entry 2020-10-25 11:54:47 +00:00
base_af_names.h Add 'mctp' network domain keyword 2022-02-08 19:09:24 +01:00
base_cap_names.h parser: Add support for CAP_CHECKPOINT_RESTORE 2020-10-13 21:30:19 -07:00
bignum.h parser: fix coverity issues found in snapshot 70858 2024-02-28 10:24:08 -03:00
capability.h Make capabilities tracker into a class 2024-11-08 14:55:43 -08:00
common_flags.h parser: Cleanup parser control flags, so they display as expected to user 2023-07-08 19:58:59 -07:00
common_optarg.c parser: add some new dfa dump options. 2024-12-22 15:02:04 -08:00
common_optarg.h parser: Cleanup parser control flags, so they display as expected to user 2023-07-08 19:58:59 -07:00
cond_expr.cc parser: refactor conditional logic into its own class 2024-08-14 17:22:48 -03:00
cond_expr.h parser: refactor conditional logic into its own class 2024-08-14 17:22:48 -03:00
COPYING.GPL rpmlint complains about an outdated FSF address in parser/COPYING.GPL. 2011-11-27 13:52:06 +01:00
dbus.cc parser: minimization - remove unnecessary second minimization pass 2024-08-14 17:15:24 -07:00
dbus.h convert owner to an enum 2024-08-14 15:47:13 -07:00
default_features.c parser: Move to a pre-generated cap_names.h 2020-07-07 09:43:48 -07:00
file_cache.h Fix comment wording in file_cache.h 2021-05-02 11:29:41 +02:00
frob_slack_rc as ACKed on IRC, drop the unused $Id$ tags everywhere 2010-12-20 12:29:10 -08:00
immunix.h parser: fix integer overflow bug in rule priority comparisons 2024-10-28 04:03:53 -07:00
io_uring.cc parser: fix rule priority destroying rule permissions for some classes 2024-08-15 03:51:20 -07:00
io_uring.h parser: rename rules.h perms_t to perm32_t 2024-08-14 14:39:18 -07:00
lib.c Fix comment typo in parser/lib.c 2021-12-05 18:16:53 +01:00
lib.h libapparmor: Use directory file descriptor in _aa_dirat_for_each() 2015-06-15 15:11:51 -05:00
Makefile parser: quote BISON_MAJOR in case it is empty 2024-11-25 13:54:25 +01:00
mount.cc Add separator between mount flags in dump_flags 2024-12-17 11:50:35 -08:00
mount.h Allow make-* flags with remount operations 2024-12-17 11:59:54 -08:00
mqueue.cc parser: minimization - remove unnecessary second minimization pass 2024-08-14 17:15:24 -07:00
mqueue.h parser: rename rules.h perms_t to perm32_t 2024-08-14 14:39:18 -07:00
network.cc parser: fix mapping of AA_CONT_MATCH for policydb compat entries 2024-11-06 12:33:36 -08:00
network.h parser: add port range support on network policy 2024-09-05 17:01:46 -03:00
parser.conf Revert "policy: pin policy to 4.0 abi for dev" 2023-07-19 17:37:24 -03:00
parser.h Merge Small fixset 2 for parser code nits 2024-11-15 00:31:57 +00:00
parser_alias.c Clarify duplicate insertion logic in parser_alias.c:process_entries 2024-11-13 14:34:55 -08:00
parser_common.c parser: fix minimization check for filtering_deny 2024-10-25 01:14:18 -07:00
parser_include.c Make parser_include push_include_stack take const char because it doesn't actually modify it 2024-10-28 12:35:26 +01:00
parser_include.h Make parser_include push_include_stack take const char because it doesn't actually modify it 2024-10-28 12:35:26 +01:00
parser_interface.c Fix compiler warnings about format specifiers with DEBUG set 2024-10-16 12:26:54 -07:00
parser_lex.l parser: add the ability to specify a priority prefix to rules 2024-08-14 17:15:24 -07:00
parser_main.c Make capabilities tracker into a class 2024-11-08 14:55:43 -08:00
parser_merge.c parser: fix priority for file rules. 2024-12-22 15:02:04 -08:00
parser_misc.c parser: fix priority for file rules. 2024-12-22 15:02:04 -08:00
parser_policy.c parser: don't set xbits when using permstable32_v1 2024-08-14 15:47:13 -07:00
parser_regex.c Merge Small fixset 1 for parser code nits 2024-10-29 12:33:02 +00:00
parser_symtab.c treewide: spelling/typo fixes in code strings 2020-12-01 12:47:18 -08:00
parser_variable.c Replace BOOL,TRUE,FALSE macros with actual C++ boolean type 2024-10-28 12:35:57 +01:00
parser_yacc.y parser: fix integer overflow bug in rule priority comparisons 2024-10-28 04:03:53 -07:00
perms.h Merge parser: improve libapparmor_re build and dump info 2024-11-15 00:32:30 +00:00
policy_cache.c Fix wording of some warnings 2020-10-11 12:22:23 +02:00
policy_cache.h drop unused extern int debug_cache 2021-02-07 16:02:20 +01:00
policydb.h parser: consolidate rule class handling into aa_class 2023-03-31 02:21:19 -07:00
profile-load profile-load: use less ambiguous if/then construct 2022-02-15 07:34:17 +00:00
profile.cc Replace BOOL,TRUE,FALSE macros with actual C++ boolean type 2024-10-28 12:35:57 +01:00
profile.h Replace BOOL,TRUE,FALSE macros with actual C++ boolean type 2024-10-28 12:35:57 +01:00
ptrace.cc parser: minimization - remove unnecessary second minimization pass 2024-08-14 17:15:24 -07:00
ptrace.h convert owner to an enum 2024-08-14 15:47:13 -07:00
rc.apparmor.functions aa-teardown: print out which profile removal failed 2024-06-08 23:35:02 +02:00
rc.apparmor.slackware added missing functions to slackware init script 2019-11-08 13:49:48 +01:00
README README: Move project contact info into the main README 2018-09-13 16:54:09 +00:00
README.devel parser: add some developer documentation 2013-12-10 14:15:02 -08:00
rule.cc parser: consolidate rule class handling into aa_class 2023-03-31 02:21:19 -07:00
rule.h parser: add the ability to specify a priority prefix to rules 2024-08-14 17:15:24 -07:00
signal.cc Make signal.cc:signal_map an unordered_map 2024-11-18 15:25:56 -08:00
signal.h convert owner to an enum 2024-08-14 15:47:13 -07:00
techdoc.tex treewide: spelling/typo fixes in comments and docs 2020-12-01 12:47:11 -08:00
unit_test.h Convert codomain to a class 2013-09-27 16:16:37 -07:00
userns.cc parser: fix rule priority destroying rule permissions for some classes 2024-08-15 03:51:20 -07:00
userns.h parser: rename rules.h perms_t to perm32_t 2024-08-14 14:39:18 -07:00

The apparmor_parser allows you to add, replace, and remove AppArmor
policy through the use of command line options. The default is to add.
`apparmor_parser --help` shows what the command line options are.

You can also find more information at https://wiki.apparmor.net

-- The AppArmor development team