diff options
-rw-r--r-- | kernel/auditfilter.c | 2 | ||||
-rw-r--r-- | kernel/auditsc.c | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/kernel/auditfilter.c b/kernel/auditfilter.c index d7a807e81451..a0c5a3ec6e60 100644 --- a/kernel/auditfilter.c +++ b/kernel/auditfilter.c | |||
@@ -426,7 +426,7 @@ static int audit_field_valid(struct audit_entry *entry, struct audit_field *f) | |||
426 | return -EINVAL; | 426 | return -EINVAL; |
427 | break; | 427 | break; |
428 | case AUDIT_EXE: | 428 | case AUDIT_EXE: |
429 | if (f->op != Audit_equal) | 429 | if (f->op != Audit_not_equal && f->op != Audit_equal) |
430 | return -EINVAL; | 430 | return -EINVAL; |
431 | if (entry->rule.listnr != AUDIT_FILTER_EXIT) | 431 | if (entry->rule.listnr != AUDIT_FILTER_EXIT) |
432 | return -EINVAL; | 432 | return -EINVAL; |
diff --git a/kernel/auditsc.c b/kernel/auditsc.c index 4e0a4ac803db..479c031ec54c 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c | |||
@@ -471,6 +471,8 @@ static int audit_filter_rules(struct task_struct *tsk, | |||
471 | break; | 471 | break; |
472 | case AUDIT_EXE: | 472 | case AUDIT_EXE: |
473 | result = audit_exe_compare(tsk, rule->exe); | 473 | result = audit_exe_compare(tsk, rule->exe); |
474 | if (f->op == Audit_not_equal) | ||
475 | result = !result; | ||
474 | break; | 476 | break; |
475 | case AUDIT_UID: | 477 | case AUDIT_UID: |
476 | result = audit_uid_comparator(cred->uid, f->op, f->uid); | 478 | result = audit_uid_comparator(cred->uid, f->op, f->uid); |