Skip to content

Commit

Permalink
audit: log on errors from filter user rules
Browse files Browse the repository at this point in the history
An error on an AUDIT_NEVER rule disabled logging on that rule.
On error on AUDIT_NEVER rules, log.

Signed-off-by: Richard Guy Briggs <rgb@redhat.com>
Signed-off-by: Eric Paris <eparis@redhat.com>
  • Loading branch information
rgbriggs authored and eparis committed Jan 14, 2014
1 parent 6dd80ab commit 724e4fc
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
2 changes: 1 addition & 1 deletion kernel/audit.c
Original file line number Diff line number Diff line change
Expand Up @@ -869,7 +869,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
return 0;

err = audit_filter_user(msg_type);
if (err == 1) {
if (err == 1) { /* match or error */
err = 0;
if (msg_type == AUDIT_USER_TTY) {
err = tty_audit_push_current();
Expand Down
11 changes: 7 additions & 4 deletions kernel/auditfilter.c
Original file line number Diff line number Diff line change
Expand Up @@ -1290,19 +1290,22 @@ int audit_filter_user(int type)
{
enum audit_state state = AUDIT_DISABLED;
struct audit_entry *e;
int ret = 1;
int rc, ret;

ret = 1; /* Audit by default */

rcu_read_lock();
list_for_each_entry_rcu(e, &audit_filter_list[AUDIT_FILTER_USER], list) {
if (audit_filter_user_rules(&e->rule, type, &state)) {
if (state == AUDIT_DISABLED)
rc = audit_filter_user_rules(&e->rule, type, &state);
if (rc) {
if (rc > 0 && state == AUDIT_DISABLED)
ret = 0;
break;
}
}
rcu_read_unlock();

return ret; /* Audit by default */
return ret;
}

int audit_filter_type(int type)
Expand Down

0 comments on commit 724e4fc

Please sign in to comment.