提交 23bcc480 编写于 作者: O Ondrej Mosnáček 提交者: Paul Moore

audit: allow not equal op for audit by executable

Current implementation of auditing by executable name only implements
the 'equal' operator. This patch extends it to also support the 'not
equal' operator.

See: https://github.com/linux-audit/audit-kernel/issues/53Signed-off-by: NOndrej Mosnacek <omosnace@redhat.com>
Reviewed-by: NRichard Guy Briggs <rgb@redhat.com>
Signed-off-by: NPaul Moore <paul@paul-moore.com>
上级 d96f92f4
...@@ -426,7 +426,7 @@ static int audit_field_valid(struct audit_entry *entry, struct audit_field *f) ...@@ -426,7 +426,7 @@ static int audit_field_valid(struct audit_entry *entry, struct audit_field *f)
return -EINVAL; return -EINVAL;
break; break;
case AUDIT_EXE: case AUDIT_EXE:
if (f->op != Audit_equal) if (f->op != Audit_not_equal && f->op != Audit_equal)
return -EINVAL; return -EINVAL;
if (entry->rule.listnr != AUDIT_FILTER_EXIT) if (entry->rule.listnr != AUDIT_FILTER_EXIT)
return -EINVAL; return -EINVAL;
......
...@@ -471,6 +471,8 @@ static int audit_filter_rules(struct task_struct *tsk, ...@@ -471,6 +471,8 @@ static int audit_filter_rules(struct task_struct *tsk,
break; break;
case AUDIT_EXE: case AUDIT_EXE:
result = audit_exe_compare(tsk, rule->exe); result = audit_exe_compare(tsk, rule->exe);
if (f->op == Audit_not_equal)
result = !result;
break; break;
case AUDIT_UID: case AUDIT_UID:
result = audit_uid_comparator(cred->uid, f->op, f->uid); result = audit_uid_comparator(cred->uid, f->op, f->uid);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册