From 37f446dd799dbffe55107694d53e9032395d1831 Mon Sep 17 00:00:00 2001 From: John Johansen Date: Fri, 9 Mar 2012 04:17:47 -0800 Subject: [PATCH] Fix/cleanup the permission reporting for the dfa dumps The permission reporting was not reporting the full set of permission flags and was inconsistent between the dump routines. Report permissions as the quad (allow/deny/audit/quiet) in hex. Signed-off-by: John Johansen Acked-By: Steve Beattie --- parser/libapparmor_re/aare_rules.cc | 2 +- parser/libapparmor_re/hfa.cc | 22 ++++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/parser/libapparmor_re/aare_rules.cc b/parser/libapparmor_re/aare_rules.cc index 38511158f..52aee8fc4 100644 --- a/parser/libapparmor_re/aare_rules.cc +++ b/parser/libapparmor_re/aare_rules.cc @@ -223,7 +223,7 @@ extern "C" int aare_add_rule_vec(aare_ruleset_t *rules, int deny, tree->dump(cerr); if (deny) cerr << " deny"; - cerr << " (" << hex << allow <<"/" << audit << dec << ")"; + cerr << " (0x" << hex << allow <<"/" << audit << dec << ")"; accept->dump(cerr); cerr << "\n\n"; } diff --git a/parser/libapparmor_re/hfa.cc b/parser/libapparmor_re/hfa.cc index b18be0846..f6ad385fb 100644 --- a/parser/libapparmor_re/hfa.cc +++ b/parser/libapparmor_re/hfa.cc @@ -633,12 +633,12 @@ void DFA::dump(ostream & os) if (*i == start || !(*i)->perms.is_null()) { os << **i; if (*i == start) - os << " <=="; - if ((*i)->perms.allow) { - os << " (0x" << hex << (*i)->perms.allow << " " - << (*i)->perms.deny << " " - << (*i)->perms.audit << " " - << (*i)->perms.audit << dec << ')'; + os << " <== (allow/deny/audit/quiet)"; + if (!(*i)->perms.is_null()) { + os << " (0x " << hex << (*i)->perms.allow << "/" + << (*i)->perms.deny << "/" + << (*i)->perms.audit << "/" + << (*i)->perms.quiet << ')'; } os << "\n"; } @@ -672,10 +672,12 @@ void DFA::dump_dot_graph(ostream & os) if (*i == start) { os << "\t\tstyle=bold" << "\n"; } - uint32_t perms = (*i)->perms.allow; - if (perms) { - os << "\t\tlabel=\"" << **i << "\\n(" - << perms << ")\"" << "\n"; + if (!(*i)->perms.is_null()) { + os << "\t\tlabel=\"" << **i << "\\n(0x " << hex + << (*i)->perms.allow << "/" + << (*i)->perms.deny << "/" + << (*i)->perms.audit << "/" + << (*i)->perms.quiet << ")\"\n"; } os << "\t]" << "\n"; }