diff --git a/parser/common_flags.h b/parser/common_flags.h index 464cb8f64..68421a32a 100644 --- a/parser/common_flags.h +++ b/parser/common_flags.h @@ -22,10 +22,8 @@ typedef int optflags_t; typedef struct optflags { - optflags_t dfaflags; - optflags_t dfadump; - optflags_t frontflags; - optflags_t frontdump; + optflags_t control; + optflags_t dump; optflags_t warn; optflags_t Werror; } optflags; diff --git a/parser/common_optarg.c b/parser/common_optarg.c index 2ba50443a..7bf327378 100644 --- a/parser/common_optarg.c +++ b/parser/common_optarg.c @@ -27,7 +27,7 @@ #include "common_optarg.h" #include "parser.h" -optflag_table_t dfadumpflag_table[] = { +optflag_table_t dumpflag_table[] = { { 1, "rule-exprs", "Dump rule to expr tree conversions", DUMP_DFA_RULE_EXPR }, { 1, "expr-stats", "Dump stats on expr tree", DUMP_DFA_TREE_STATS }, @@ -70,6 +70,7 @@ optflag_table_t dfadumpflag_table[] = { DUMP_DFA_DIFF_STATS }, { 1, "diff-progress", "Dump progress of differential encoding", DUMP_DFA_DIFF_PROGRESS | DUMP_DFA_DIFF_STATS }, + { 1, "rule-merge", "dump information about rule merging", DUMP_RULE_MERGE}, { 0, NULL, NULL, 0 }, }; @@ -100,6 +101,7 @@ optflag_table_t dfaoptflag_table[] = { CONTROL_DFA_TRANS_HIGH }, { 1, "diff-encode", "Differentially encode transitions", CONTROL_DFA_DIFF_ENCODE }, + { 1, "rule-merge", "turn on rule merging", CONTROL_RULE_MERGE}, { 0, NULL, NULL, 0 }, }; diff --git a/parser/common_optarg.h b/parser/common_optarg.h index c5c6144b2..4e44f5b8f 100644 --- a/parser/common_optarg.h +++ b/parser/common_optarg.h @@ -38,7 +38,7 @@ typedef struct { optflags_t flags; } optflag_table_t; -extern optflag_table_t dfadumpflag_table[]; +extern optflag_table_t dumpflag_table[]; extern optflag_table_t dfaoptflag_table[]; diff --git a/parser/libapparmor_re/aare_rules.cc b/parser/libapparmor_re/aare_rules.cc index 9c146363c..385e4508a 100644 --- a/parser/libapparmor_re/aare_rules.cc +++ b/parser/libapparmor_re/aare_rules.cc @@ -110,7 +110,7 @@ bool aare_rules::add_rule_vec(int deny, uint32_t perms, uint32_t audit, accept = unique_perms.insert(deny, perms, audit, exact_match); - if (opts.dfadump & DUMP_DFA_RULE_EXPR) { + if (opts.dump & DUMP_DFA_RULE_EXPR) { const char *separator; if (oob) separator = "\\-x01"; @@ -158,7 +158,7 @@ bool aare_rules::append_rule(const char *rule, bool oob, bool with_perm, if (regex_parse(&tree, rule)) return false; - if (opts.dfadump & DUMP_DFA_RULE_EXPR) { + if (opts.dump & DUMP_DFA_RULE_EXPR) { cerr << "rule: "; cerr << rule; cerr << " -> "; @@ -204,14 +204,14 @@ void *aare_rules::create_dfa(size_t *size, int *min_match_len, optflags const &o * set nodes */ PermExprMap::iterator i = expr_map.begin(); if (i != expr_map.end()) { - if (opts.dfaflags & CONTROL_DFA_TREE_SIMPLE) { + if (opts.control & CONTROL_DFA_TREE_SIMPLE) { Node *tmp = simplify_tree(i->second, opts); root = new CatNode(tmp, i->first); } else root = new CatNode(i->second, i->first); for (i++; i != expr_map.end(); i++) { Node *tmp; - if (opts.dfaflags & CONTROL_DFA_TREE_SIMPLE) { + if (opts.control & CONTROL_DFA_TREE_SIMPLE) { tmp = simplify_tree(i->second, opts); } else tmp = i->second; @@ -226,13 +226,13 @@ void *aare_rules::create_dfa(size_t *size, int *min_match_len, optflags const &o * this debug dump. */ label_nodes(root); - if (opts.dfadump & DUMP_DFA_TREE) { + if (opts.dump & DUMP_DFA_TREE) { cerr << "\nDFA: Expression Tree\n"; root->dump(cerr); cerr << "\n\n"; } - if (opts.dfaflags & CONTROL_DFA_TREE_SIMPLE) { + if (opts.control & CONTROL_DFA_TREE_SIMPLE) { /* This is old total tree, simplification point * For now just do simplification up front. It gets most * of the benefit running on the smaller chains, and is @@ -241,7 +241,7 @@ void *aare_rules::create_dfa(size_t *size, int *min_match_len, optflags const &o */ //root = simplify_tree(root, opts); - if (opts.dfadump & DUMP_DFA_SIMPLE_TREE) { + if (opts.dump & DUMP_DFA_SIMPLE_TREE) { cerr << "\nDFA: Simplified Expression Tree\n"; root->dump(cerr); cerr << "\n\n"; @@ -251,18 +251,18 @@ void *aare_rules::create_dfa(size_t *size, int *min_match_len, optflags const &o stringstream stream; try { DFA dfa(root, opts, filedfa); - if (opts.dfadump & DUMP_DFA_UNIQ_PERMS) + if (opts.dump & DUMP_DFA_UNIQ_PERMS) dfa.dump_uniq_perms("dfa"); - if (opts.dfaflags & CONTROL_DFA_MINIMIZE) { + if (opts.control & CONTROL_DFA_MINIMIZE) { dfa.minimize(opts); - if (opts.dfadump & DUMP_DFA_MIN_UNIQ_PERMS) + if (opts.dump & DUMP_DFA_MIN_UNIQ_PERMS) dfa.dump_uniq_perms("minimized dfa"); } - if (opts.dfaflags & CONTROL_DFA_FILTER_DENY && - opts.dfaflags & CONTROL_DFA_MINIMIZE && + if (opts.control & CONTROL_DFA_FILTER_DENY && + opts.control & CONTROL_DFA_MINIMIZE && dfa.apply_and_clear_deny()) { /* Do a second minimization pass as removal of deny * information has moved some states from accepting @@ -273,40 +273,40 @@ void *aare_rules::create_dfa(size_t *size, int *min_match_len, optflags const &o */ dfa.minimize(opts); - if (opts.dfadump & DUMP_DFA_MIN_UNIQ_PERMS) + if (opts.dump & DUMP_DFA_MIN_UNIQ_PERMS) dfa.dump_uniq_perms("minimized dfa"); } - if (opts.dfaflags & CONTROL_DFA_REMOVE_UNREACHABLE) + if (opts.control & CONTROL_DFA_REMOVE_UNREACHABLE) dfa.remove_unreachable(opts); - if (opts.dfadump & DUMP_DFA_STATES) + if (opts.dump & DUMP_DFA_STATES) dfa.dump(cerr); - if (opts.dfadump & DUMP_DFA_GRAPH) + if (opts.dump & DUMP_DFA_GRAPH) dfa.dump_dot_graph(cerr); map eq; - if (opts.dfaflags & CONTROL_DFA_EQUIV) { + if (opts.control & CONTROL_DFA_EQUIV) { eq = dfa.equivalence_classes(opts); dfa.apply_equivalence_classes(eq); - if (opts.dfadump & DUMP_DFA_EQUIV) { + if (opts.dump & DUMP_DFA_EQUIV) { cerr << "\nDFA equivalence class\n"; dump_equivalence_classes(cerr, eq); } - } else if (opts.dfadump & DUMP_DFA_EQUIV) + } else if (opts.dump & DUMP_DFA_EQUIV) cerr << "\nDFA did not generate an equivalence class\n"; - if (opts.dfaflags & CONTROL_DFA_DIFF_ENCODE) { + if (opts.control & CONTROL_DFA_DIFF_ENCODE) { dfa.diff_encode(opts); - if (opts.dfadump & DUMP_DFA_DIFF_ENCODE) + if (opts.dump & DUMP_DFA_DIFF_ENCODE) dfa.dump_diff_encode(cerr); } CHFA chfa(dfa, eq, opts); - if (opts.dfadump & DUMP_DFA_TRANS_TABLE) + if (opts.dump & DUMP_DFA_TRANS_TABLE) chfa.dump(cerr); chfa.flex_table(stream, ""); } diff --git a/parser/libapparmor_re/apparmor_re.h b/parser/libapparmor_re/apparmor_re.h index eafb12203..243d728ae 100644 --- a/parser/libapparmor_re/apparmor_re.h +++ b/parser/libapparmor_re/apparmor_re.h @@ -30,6 +30,8 @@ #define CONTROL_DFA_REMOVE_UNREACHABLE (1 << 7) #define CONTROL_DFA_TRANS_HIGH (1 << 8) #define CONTROL_DFA_DIFF_ENCODE (1 << 9) +#define CONTROL_RULE_MERGE (1 << 10) + #define DUMP_DFA_DIFF_PROGRESS (1 << 0) #define DUMP_DFA_DIFF_ENCODE (1 << 1) @@ -53,5 +55,6 @@ #define DUMP_DFA_UNREACHABLE (1 << 19) #define DUMP_DFA_RULE_EXPR (1 << 20) #define DUMP_DFA_NODE_TO_DFA (1 << 21) +#define DUMP_RULE_MERGE (1 << 22) #endif /* APPARMOR_RE_H */ diff --git a/parser/libapparmor_re/chfa.cc b/parser/libapparmor_re/chfa.cc index c31045866..658218958 100644 --- a/parser/libapparmor_re/chfa.cc +++ b/parser/libapparmor_re/chfa.cc @@ -52,7 +52,7 @@ void CHFA::init_free_list(vector > &free_list, CHFA::CHFA(DFA &dfa, map &eq, optflags const &opts): eq(eq) { - if (opts.dfadump & DUMP_DFA_TRANS_PROGRESS) + if (opts.dump & DUMP_DFA_TRANS_PROGRESS) fprintf(stderr, "Compressing HFA:\r"); chfaflags = 0; @@ -83,7 +83,7 @@ CHFA::CHFA(DFA &dfa, map &eq, optflags const &opts): if (*i == dfa.start || *i == dfa.nonmatching) continue; optimal += (*i)->trans.size(); - if (opts.dfaflags & CONTROL_DFA_TRANS_HIGH) { + if (opts.control & CONTROL_DFA_TRANS_HIGH) { size_t range = 0; if ((*i)->trans.size()) range = @@ -117,7 +117,7 @@ CHFA::CHFA(DFA &dfa, map &eq, optflags const &opts): int count = 2; - if (!(opts.dfaflags & CONTROL_DFA_TRANS_HIGH)) { + if (!(opts.control & CONTROL_DFA_TRANS_HIGH)) { for (Partition::iterator i = dfa.states.begin(); i != dfa.states.end(); i++) { if (*i != dfa.nonmatching && *i != dfa.start) { insert_state(free_list, *i, dfa); @@ -125,7 +125,7 @@ CHFA::CHFA(DFA &dfa, map &eq, optflags const &opts): accept2[num.size()] = PACK_AUDIT_CTL((*i)->perms.audit, (*i)->perms.quiet & (*i)->perms.deny); num.insert(make_pair(*i, num.size())); } - if (opts.dfadump & (DUMP_DFA_TRANS_PROGRESS)) { + if (opts.dump & (DUMP_DFA_TRANS_PROGRESS)) { count++; if (count % 100 == 0) fprintf(stderr, "\033[2KCompressing trans table: insert state: %d/%zd\r", @@ -142,7 +142,7 @@ CHFA::CHFA(DFA &dfa, map &eq, optflags const &opts): accept2[num.size()] = PACK_AUDIT_CTL(i->second->perms.audit, i->second->perms.quiet & i->second->perms.deny); num.insert(make_pair(i->second, num.size())); } - if (opts.dfadump & (DUMP_DFA_TRANS_PROGRESS)) { + if (opts.dump & (DUMP_DFA_TRANS_PROGRESS)) { count++; if (count % 100 == 0) fprintf(stderr, "\033[2KCompressing trans table: insert state: %d/%zd\r", @@ -151,7 +151,7 @@ CHFA::CHFA(DFA &dfa, map &eq, optflags const &opts): } } - if (opts.dfadump & (DUMP_DFA_TRANS_STATS | DUMP_DFA_TRANS_PROGRESS)) { + if (opts.dump & (DUMP_DFA_TRANS_STATS | DUMP_DFA_TRANS_PROGRESS)) { ssize_t size = 4 * next_check.size() + 6 * dfa.states.size(); fprintf(stderr, "\033[2KCompressed trans table: states %zd, next/check %zd, optimal next/check %zd avg/state %.2f, compression %zd/%zd = %.2f %%\n", dfa.states.size(), next_check.size(), optimal, diff --git a/parser/libapparmor_re/expr-tree.cc b/parser/libapparmor_re/expr-tree.cc index aa691db57..53c640d4e 100644 --- a/parser/libapparmor_re/expr-tree.cc +++ b/parser/libapparmor_re/expr-tree.cc @@ -580,7 +580,7 @@ Node *simplify_tree(Node *t, optflags const &opts) bool update = true; int i; - if (opts.dfadump & DUMP_DFA_TREE_STATS) { + if (opts.dump & DUMP_DFA_TREE_STATS) { struct node_counts counts = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; count_tree_nodes(t, &counts); fprintf(stderr, @@ -598,25 +598,25 @@ Node *simplify_tree(Node *t, optflags const &opts) // the dfa having about 7 thousands states, // and it having about 1.25 million states int dir = 1; - if (opts.dfaflags & CONTROL_DFA_TREE_LEFT) + if (opts.control & CONTROL_DFA_TREE_LEFT) dir = 0; for (int count = 0; count < 2; count++) { bool modified; do { modified = false; - if (opts.dfaflags & CONTROL_DFA_TREE_NORMAL) + if (opts.control & CONTROL_DFA_TREE_NORMAL) t->normalize(dir); t = simplify_tree_base(t, dir, modified); if (modified) update = true; } while (modified); - if (opts.dfaflags & CONTROL_DFA_TREE_LEFT) + if (opts.control & CONTROL_DFA_TREE_LEFT) dir++; else dir--; } } - if (opts.dfadump & DUMP_DFA_TREE_STATS) { + if (opts.dump & DUMP_DFA_TREE_STATS) { struct node_counts counts = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; count_tree_nodes(t, &counts); fprintf(stderr, diff --git a/parser/libapparmor_re/hfa.cc b/parser/libapparmor_re/hfa.cc index e8c31ab91..ebb0f4b70 100644 --- a/parser/libapparmor_re/hfa.cc +++ b/parser/libapparmor_re/hfa.cc @@ -396,7 +396,7 @@ void DFA::process_work_queue(const char *header, optflags const &opts) int i = 0; while (!work_queue.empty()) { - if (i % 1000 == 0 && (opts.dfadump & DUMP_DFA_PROGRESS)) { + if (i % 1000 == 0 && (opts.dump & DUMP_DFA_PROGRESS)) { cerr << "\033[2K" << header << ": queue " << work_queue.size() << "\tstates " @@ -428,7 +428,7 @@ DFA::DFA(Node *root, optflags const &opts, bool buildfiledfa): root(root), filed oob_range = 0; ord_range = 8; - if (opts.dfadump & DUMP_DFA_PROGRESS) + if (opts.dump & DUMP_DFA_PROGRESS) fprintf(stderr, "Creating dfa:\r"); for (depth_first_traversal i(root); i; i++) { @@ -437,7 +437,7 @@ DFA::DFA(Node *root, optflags const &opts, bool buildfiledfa): root(root), filed (*i)->compute_lastpos(); } - if (opts.dfadump & DUMP_DFA_PROGRESS) + if (opts.dump & DUMP_DFA_PROGRESS) fprintf(stderr, "Creating dfa: followpos\r"); for (depth_first_traversal i(root); i; i++) { (*i)->compute_followpos(); @@ -471,10 +471,10 @@ DFA::DFA(Node *root, optflags const &opts, bool buildfiledfa): root(root), filed (*i)->followpos.clear(); } - if (opts.dfadump & DUMP_DFA_NODE_TO_DFA) + if (opts.dump & DUMP_DFA_NODE_TO_DFA) dump_node_to_dfa(); - if (opts.dfadump & (DUMP_DFA_STATS)) { + if (opts.dump & (DUMP_DFA_STATS)) { cerr << "\033[2KCreated dfa: states " << states.size() << " proto { " @@ -571,7 +571,7 @@ void DFA::remove_unreachable(optflags const &opts) next = i; next++; if (reachable.find(*i) == reachable.end()) { - if (opts.dfadump & DUMP_DFA_UNREACHABLE) { + if (opts.dump & DUMP_DFA_UNREACHABLE) { cerr << "unreachable: " << **i; if (*i == start) cerr << " <=="; @@ -586,7 +586,7 @@ void DFA::remove_unreachable(optflags const &opts) } } - if (count && (opts.dfadump & DUMP_DFA_STATS)) + if (count && (opts.dump & DUMP_DFA_STATS)) cerr << "DFA: states " << states.size() << " removed " << count << " unreachable states\n"; } @@ -680,7 +680,7 @@ void DFA::minimize(optflags const &opts) p->second->push_back(*i); } - if ((opts.dfadump & DUMP_DFA_PROGRESS) && (partitions.size() % 1000 == 0)) + if ((opts.dump & DUMP_DFA_PROGRESS) && (partitions.size() % 1000 == 0)) cerr << "\033[2KMinimize dfa: partitions " << partitions.size() << "\tinit " << partitions.size() << " (accept " << accept_count << ")\r"; @@ -692,7 +692,7 @@ void DFA::minimize(optflags const &opts) perm_map.clear(); int init_count = partitions.size(); - if (opts.dfadump & DUMP_DFA_PROGRESS) + if (opts.dump & DUMP_DFA_PROGRESS) cerr << "\033[2KMinimize dfa: partitions " << partitions.size() << "\tinit " << init_count << " (accept " << accept_count << ")\r"; @@ -734,7 +734,7 @@ void DFA::minimize(optflags const &opts) (*m)->partition = new_part; } } - if ((opts.dfadump & DUMP_DFA_PROGRESS) && (partitions.size() % 100 == 0)) + if ((opts.dump & DUMP_DFA_PROGRESS) && (partitions.size() % 100 == 0)) cerr << "\033[2KMinimize dfa: partitions " << partitions.size() << "\tinit " << init_count << " (accept " @@ -743,7 +743,7 @@ void DFA::minimize(optflags const &opts) } while (new_part_count); if (partitions.size() == states.size()) { - if (opts.dfadump & DUMP_DFA_STATS) + if (opts.dump & DUMP_DFA_STATS) cerr << "\033[2KDfa minimization no states removed: partitions " << partitions.size() << "\tinit " << init_count << " (accept " << accept_count << ")\n"; @@ -757,13 +757,13 @@ void DFA::minimize(optflags const &opts) * to states within the same partitions, however this can slow * down compressed dfa compression as there are more states, */ - if (opts.dfadump & DUMP_DFA_MIN_PARTS) + if (opts.dump & DUMP_DFA_MIN_PARTS) cerr << "Partitions after minimization\n"; for (list::iterator p = partitions.begin(); p != partitions.end(); p++) { /* representative state for this partition */ State *rep = *((*p)->begin()); - if (opts.dfadump & DUMP_DFA_MIN_PARTS) + if (opts.dump & DUMP_DFA_MIN_PARTS) cerr << *rep << " : "; /* update representative state's transitions */ @@ -782,17 +782,17 @@ void DFA::minimize(optflags const &opts) /* clear the state label for all non representative states, * and accumulate permissions */ for (Partition::iterator i = ++(*p)->begin(); i != (*p)->end(); i++) { - if (opts.dfadump & DUMP_DFA_MIN_PARTS) + if (opts.dump & DUMP_DFA_MIN_PARTS) cerr << **i << ", "; (*i)->label = -1; rep->perms.add((*i)->perms, filedfa); } if (rep->perms.is_accept()) final_accept++; - if (opts.dfadump & DUMP_DFA_MIN_PARTS) + if (opts.dump & DUMP_DFA_MIN_PARTS) cerr << "\n"; } - if (opts.dfadump & DUMP_DFA_STATS) + if (opts.dump & DUMP_DFA_STATS) cerr << "\033[2KMinimized dfa: final partitions " << partitions.size() << " (accept " << final_accept << ")" << "\tinit " << init_count << " (accept " @@ -965,7 +965,7 @@ void DFA::diff_encode(optflags const &opts) } } - if ((opts.dfadump & DUMP_DFA_DIFF_PROGRESS) && (i % 100 == 0)) + if ((opts.dump & DUMP_DFA_DIFF_PROGRESS) && (i % 100 == 0)) cerr << "\033[2KDiff Encode: " << i << " of " << tail << ". Diff states " << xcount << " Savings " << xweight << "\r"; @@ -992,7 +992,7 @@ void DFA::diff_encode(optflags const &opts) } } - if (opts.dfadump & DUMP_DFA_DIFF_STATS) + if (opts.dump & DUMP_DFA_DIFF_STATS) cerr << "Diff encode states: " << diffcount << " of " << tail << " reached @ depth " << depth << ". " << aweight << " trans removed\n"; @@ -1251,7 +1251,7 @@ map DFA::equivalence_classes(optflags const &opts) } } - if (opts.dfadump & DUMP_DFA_EQUIV_STATS) + if (opts.dump & DUMP_DFA_EQUIV_STATS) fprintf(stderr, "Equiv class reduces to %d classes\n", next_class.c - 1); return classes; diff --git a/parser/parser.h b/parser/parser.h index 8c6984319..95b177060 100644 --- a/parser/parser.h +++ b/parser/parser.h @@ -83,9 +83,6 @@ extern int parser_token; WARN_OVERRIDE | WARN_INCLUDE) -#define CONTROL_RULE_MERGE 0x1 -#define DUMP_RULE_MERGE 0x1 - typedef enum pattern_t pattern_t; diff --git a/parser/parser_common.c b/parser/parser_common.c index 9dc9b484b..f117d2ffa 100644 --- a/parser/parser_common.c +++ b/parser/parser_common.c @@ -100,10 +100,8 @@ FILE *ofile = NULL; IncludeCache_t *g_includecache; optflags parseopts = { - .dfaflags = (optflags_t)(CONTROL_DFA_TREE_NORMAL | CONTROL_DFA_TREE_SIMPLE | CONTROL_DFA_MINIMIZE | CONTROL_DFA_DIFF_ENCODE), - .dfadump = 0, - .frontflags = (optflags_t)(CONTROL_RULE_MERGE), - .frontdump = 0, + .control = (optflags_t)(CONTROL_DFA_TREE_NORMAL | CONTROL_DFA_TREE_SIMPLE | CONTROL_DFA_MINIMIZE | CONTROL_DFA_DIFF_ENCODE | CONTROL_RULE_MERGE), + .dump = 0, .warn = DEFAULT_WARNINGS, .Werror = 0 }; diff --git a/parser/parser_main.c b/parser/parser_main.c index e001957f3..d46eb8ef2 100644 --- a/parser/parser_main.c +++ b/parser/parser_main.c @@ -277,15 +277,6 @@ optflag_table_t warnflag_table[] = { { 0, NULL, NULL, 0 }, }; -optflag_table_t frontopts_table[] = { - { 1, "rule-merge", "turn on rule merging", CONTROL_RULE_MERGE}, - { 0, NULL, NULL, 0 }, -}; - -optflag_table_t frontdump_table[] = { - { 1, "rule-merge", "dump information about rule merging", DUMP_RULE_MERGE}, - { 0, NULL, NULL, 0 }, -}; /* Parse comma separated cachelocations. Commas can be escaped by \, */ static int parse_cacheloc(const char *arg, const char **cacheloc, int max_size) @@ -506,14 +497,11 @@ static int process_arg(int c, char *optarg) strcmp(optarg, "dump") == 0 || strcmp(optarg, "D") == 0) { flagtable_help("--dump=", DUMP_HEADER, progname, - dfadumpflag_table); - flagtable_help("--dump=", DUMP_HEADER, progname, - frontopts_table); + dumpflag_table); } else if (strcmp(optarg, "Optimize") == 0 || strcmp(optarg, "optimize") == 0 || strcmp(optarg, "O") == 0) { flagtable_help("-O ", "", progname, dfaoptflag_table); - flagtable_help("-O ", "", progname, frontopts_table); } else if (strcmp(optarg, "warn") == 0) { flagtable_help("--warn=", "", progname, warnflag_table); } else if (strcmp(optarg, "Werror") == 0) { @@ -584,16 +572,13 @@ static int process_arg(int c, char *optarg) if (!optarg) { dump_vars = 1; } else if (strcmp(optarg, "show") == 0) { - print_flags("dump", dfadumpflag_table, parseopts.dfadump); - print_flags("dump", frontdump_table, parseopts.frontdump); + print_flags("dump", dumpflag_table, parseopts.dump); } else if (strcmp(optarg, "variables") == 0) { dump_vars = 1; } else if (strcmp(optarg, "expanded-variables") == 0) { dump_expanded_vars = 1; - } else if (!handle_flag_table(dfadumpflag_table, optarg, - &parseopts.dfadump) && - !handle_flag_table(frontdump_table, optarg, - &parseopts.frontdump)) { + } else if (!handle_flag_table(dumpflag_table, optarg, + &parseopts.dump)) { PERROR("%s: Invalid --Dump option %s\n", progname, optarg); exit(1); @@ -601,12 +586,9 @@ static int process_arg(int c, char *optarg) break; case 'O': if (strcmp(optarg, "show") == 0) { - print_flags("Optimize", dfaoptflag_table, parseopts.dfaflags); - print_flags("Optimize", frontopts_table, parseopts.frontflags); + print_flags("Optimize", dfaoptflag_table, parseopts.control); } else if (!handle_flag_table(dfaoptflag_table, optarg, - &parseopts.dfaflags) && - !handle_flag_table(frontopts_table, optarg, - &parseopts.frontflags)) { + &parseopts.control)) { PERROR("%s: Invalid --Optimize option %s\n", progname, optarg); exit(1); @@ -1552,7 +1534,7 @@ static bool get_kernel_features(struct aa_features **features) if (!kernel_supports_diff_encode) /* clear diff_encode because it is not supported */ - parseopts.dfaflags &= ~CONTROL_DFA_DIFF_ENCODE; + parseopts.control &= ~CONTROL_DFA_DIFF_ENCODE; return true; } diff --git a/parser/parser_merge.c b/parser/parser_merge.c index 7f9ce297d..523933cab 100644 --- a/parser/parser_merge.c +++ b/parser/parser_merge.c @@ -111,7 +111,7 @@ static int process_file_entries(Profile *prof) int profile_merge_rules(Profile *prof) { - if (!(parseopts.frontflags & CONTROL_RULE_MERGE)) + if (!(parseopts.control & CONTROL_RULE_MERGE)) return 0; int res, tmp = process_file_entries(prof); @@ -120,7 +120,7 @@ int profile_merge_rules(Profile *prof) res = prof->merge_rules(); if (res < 0) return -res; - if (parseopts.frontdump & DUMP_RULE_MERGE) + if (parseopts.dump & DUMP_RULE_MERGE) fprintf(stderr, "RULE MERGE: deleted %d file rules, %d rules\n", tmp, res); return 0; } diff --git a/parser/parser_regex.c b/parser/parser_regex.c index 6eb1eb153..578f6aa44 100644 --- a/parser/parser_regex.c +++ b/parser/parser_regex.c @@ -128,7 +128,7 @@ pattern_t convert_aaregex_to_pcre(const char *aare, int anchor, int glob, sptr = aare; - if (parseopts.dfadump & DUMP_DFA_RULE_EXPR) + if (parseopts.dump & DUMP_DFA_RULE_EXPR) fprintf(stderr, "aare: %s -> ", aare); if (anchor) @@ -427,7 +427,7 @@ out: if (ret == FALSE) ptype = ePatternInvalid; - if (parseopts.dfadump & DUMP_DFA_RULE_EXPR) + if (parseopts.dump & DUMP_DFA_RULE_EXPR) fprintf(stderr, "%s\n", pcre.c_str()); return ptype;