summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw2@shinybook.infradead.org>2005-08-27 11:25:43 +0200
committerDavid Woodhouse <dwmw2@shinybook.infradead.org>2005-08-27 11:25:43 +0200
commitb01f2cc1c37ac3d5ca313c90370a586dffe5aca9 (patch)
tree04fb64e730b6e36293c30cade3606cf53c8c8e20 /kernel
parentFix missing audit_syscall_exit() on ppc64 sigsuspend exit path (diff)
downloadlinux-b01f2cc1c37ac3d5ca313c90370a586dffe5aca9.tar.xz
linux-b01f2cc1c37ac3d5ca313c90370a586dffe5aca9.zip
[AUDIT] Allow filtering on system call success _or_ failure
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/auditsc.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/auditsc.c b/kernel/auditsc.c
index 488ba3dea8bb..88696f639aab 100644
--- a/kernel/auditsc.c
+++ b/kernel/auditsc.c
@@ -440,8 +440,12 @@ static int audit_filter_rules(struct task_struct *tsk,
result = (ctx->return_code == value);
break;
case AUDIT_SUCCESS:
- if (ctx && ctx->return_valid)
- result = (ctx->return_valid == AUDITSC_SUCCESS);
+ if (ctx && ctx->return_valid) {
+ if (value)
+ result = (ctx->return_valid == AUDITSC_SUCCESS);
+ else
+ result = (ctx->return_valid == AUDITSC_FAILURE);
+ }
break;
case AUDIT_DEVMAJOR:
if (ctx) {