[PATCH] fix AUDIT_FILTER_PREPEND handling
Amy Griffis [Fri, 2 Jun 2006 17:16:01 +0000 (13:16 -0400)]
Clear AUDIT_FILTER_PREPEND flag after adding rule to list.  This
fixes three problems when a rule is added with the -A syntax:

    - auditctl displays filter list as "(null)"
    - the rule cannot be removed using -d
    - a duplicate rule can be added with -a

Signed-off-by: Amy Griffis <amy.griffis@hp.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

kernel/auditfilter.c

index 9f985dd..a536f71 100644 (file)
@@ -1083,6 +1083,7 @@ static inline int audit_add_rule(struct audit_entry *entry,
 
        if (entry->rule.flags & AUDIT_FILTER_PREPEND) {
                list_add_rcu(&entry->list, list);
+               entry->rule.flags &= ~AUDIT_FILTER_PREPEND;
        } else {
                list_add_tail_rcu(&entry->list, list);
        }