[PATCH] fix AUDIT_FILTER_PREPEND handling
authorAmy Griffis <amy.griffis@hp.com>
Fri, 2 Jun 2006 17:16:01 +0000 (13:16 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 20 Jun 2006 09:25:28 +0000 (05:25 -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 9f985dd5e9379f69b110457c74a3be4ef90e8faf..a536f7148bcd5fadb0fc1f83b3dc238fe1eaa9a2 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);
        }