diff options
author | Amy Griffis <amy.griffis@hp.com> | 2006-09-07 17:46:18 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2006-09-11 13:32:17 -0400 |
commit | 5974501e2d44546748e67c635cec20ba66619a3d (patch) | |
tree | f36ef74c1192b73d25a84f9c09ddb844a0d59cc6 /kernel/auditfilter.c | |
parent | 8ef2d3040e5cf38f7d64a408038f576b4a5ec987 (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.c | 19 |
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 | } |