summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/auditfilter.c2
-rw-r--r--kernel/auditsc.c2
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);