aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Paris <eparis@redhat.com>2008-01-07 13:49:15 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2008-02-01 14:07:19 -0500
commitc0641f28dcbecb6dc34a4fd003a9947fcd080696 (patch)
tree75cc2700afe2e83834895e7f45c7f663faf2e034
parent4746ec5b01ed07205a91e4f7ed9de9d70f371407 (diff)
[AUDIT] Add End of Event record
This patch adds an end of event record type. It will be sent by the kernel as the last record when a multi-record event is triggered. This will aid realtime analysis programs since they will now reliably know they have the last record to complete an event. The audit daemon filters this and will not write it to disk. Signed-off-by: Steve Grubb <sgrubb redhat com> Signed-off-by: Eric Paris <eparis@redhat.com>
-rw-r--r--include/linux/audit.h1
-rw-r--r--kernel/auditsc.c5
2 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/audit.h b/include/linux/audit.h
index 52f1b12505a9..4d1c2f2fcc1b 100644
--- a/include/linux/audit.h
+++ b/include/linux/audit.h
@@ -98,6 +98,7 @@
98#define AUDIT_FD_PAIR 1317 /* audit record for pipe/socketpair */ 98#define AUDIT_FD_PAIR 1317 /* audit record for pipe/socketpair */
99#define AUDIT_OBJ_PID 1318 /* ptrace target */ 99#define AUDIT_OBJ_PID 1318 /* ptrace target */
100#define AUDIT_TTY 1319 /* Input on an administrative TTY */ 100#define AUDIT_TTY 1319 /* Input on an administrative TTY */
101#define AUDIT_EOE 1320 /* End of multi-record event */
101 102
102#define AUDIT_AVC 1400 /* SE Linux avc denial or grant */ 103#define AUDIT_AVC 1400 /* SE Linux avc denial or grant */
103#define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */ 104#define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */
diff --git a/kernel/auditsc.c b/kernel/auditsc.c
index 4e67abb02904..6e5de767bad1 100644
--- a/kernel/auditsc.c
+++ b/kernel/auditsc.c
@@ -1270,6 +1270,11 @@ static void audit_log_exit(struct audit_context *context, struct task_struct *ts
1270 1270
1271 audit_log_end(ab); 1271 audit_log_end(ab);
1272 } 1272 }
1273
1274 /* Send end of event record to help user space know we are finished */
1275 ab = audit_log_start(context, GFP_KERNEL, AUDIT_EOE);
1276 if (ab)
1277 audit_log_end(ab);
1273 if (call_panic) 1278 if (call_panic)
1274 audit_panic("error converting sid to string"); 1279 audit_panic("error converting sid to string");
1275} 1280}