aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/auditfilter.c
diff options
context:
space:
mode:
authorAmy Griffis <amy.griffis@hp.com>2006-09-07 17:46:18 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2006-09-11 13:32:17 -0400
commit5974501e2d44546748e67c635cec20ba66619a3d (patch)
treef36ef74c1192b73d25a84f9c09ddb844a0d59cc6 /kernel/auditfilter.c
parent8ef2d3040e5cf38f7d64a408038f576b4a5ec987 (diff)
[PATCH] update audit rule change messages
Make the audit message for implicit rule removal more informative. Make the rule update message consistent with other messages. Signed-off-by: Amy Griffis <amy.griffis@hp.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'kernel/auditfilter.c')
-rw-r--r--kernel/auditfilter.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/kernel/auditfilter.c b/kernel/auditfilter.c
index 0d6a8fc21f17..e4cafc11c510 100644
--- a/kernel/auditfilter.c
+++ b/kernel/auditfilter.c
@@ -914,7 +914,7 @@ static void audit_update_watch(struct audit_parent *parent,
914 } 914 }
915 915
916 ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE); 916 ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE);
917 audit_log_format(ab, "audit updated rules specifying watch="); 917 audit_log_format(ab, "audit updated rules specifying path=");
918 audit_log_untrustedstring(ab, owatch->path); 918 audit_log_untrustedstring(ab, owatch->path);
919 audit_log_format(ab, " with dev=%u ino=%lu\n", dev, ino); 919 audit_log_format(ab, " with dev=%u ino=%lu\n", dev, ino);
920 audit_log_end(ab); 920 audit_log_end(ab);
@@ -937,19 +937,28 @@ static void audit_remove_parent_watches(struct audit_parent *parent)
937 struct audit_watch *w, *nextw; 937 struct audit_watch *w, *nextw;
938 struct audit_krule *r, *nextr; 938 struct audit_krule *r, *nextr;
939 struct audit_entry *e; 939 struct audit_entry *e;
940 struct audit_buffer *ab;
940 941
941 mutex_lock(&audit_filter_mutex); 942 mutex_lock(&audit_filter_mutex);
942 parent->flags |= AUDIT_PARENT_INVALID; 943 parent->flags |= AUDIT_PARENT_INVALID;
943 list_for_each_entry_safe(w, nextw, &parent->watches, wlist) { 944 list_for_each_entry_safe(w, nextw, &parent->watches, wlist) {
944 list_for_each_entry_safe(r, nextr, &w->rules, rlist) { 945 list_for_each_entry_safe(r, nextr, &w->rules, rlist) {
945 e = container_of(r, struct audit_entry, rule); 946 e = container_of(r, struct audit_entry, rule);
947
948 ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE);
949 audit_log_format(ab, "audit implicitly removed rule path=");
950 audit_log_untrustedstring(ab, w->path);
951 if (r->filterkey) {
952 audit_log_format(ab, " key=");
953 audit_log_untrustedstring(ab, r->filterkey);
954 } else
955 audit_log_format(ab, " key=(null)");
956 audit_log_format(ab, " list=%d", r->listnr);
957 audit_log_end(ab);
958
946 list_del(&r->rlist); 959 list_del(&r->rlist);
947 list_del_rcu(&e->list); 960 list_del_rcu(&e->list);
948 call_rcu(&e->rcu, audit_free_rule_rcu); 961 call_rcu(&e->rcu, audit_free_rule_rcu);
949
950 audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE,
951 "audit implicitly removed rule from list=%d\n",
952 AUDIT_FILTER_EXIT);
953 } 962 }
954 audit_remove_watch(w); 963 audit_remove_watch(w);
955 } 964 }