summaryrefslogtreecommitdiff
path: root/security/lsm_audit.c
diff options
context:
space:
mode:
authorJames Morris <james.l.morris@oracle.com>2012-05-22 11:21:06 +1000
committerJames Morris <james.l.morris@oracle.com>2012-05-22 11:21:06 +1000
commitff2bb047c4bce9742e94911eeb44b4d6ff4734ab (patch)
tree9d9b1cfa3fc17f0cc13f34ca697306cb1f46b05f /security/lsm_audit.c
parentcffee16e8b997ab947de661e8820e486b0830c94 (diff)
parentc737f8284cac91428f8fcc8281e69117fa16e887 (diff)
Merge branch 'master' of git://git.infradead.org/users/eparis/selinux into next
Per pull request, for 3.5.
Diffstat (limited to 'security/lsm_audit.c')
-rw-r--r--security/lsm_audit.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/security/lsm_audit.c b/security/lsm_audit.c
index 90c129b0102f..8d8d97dbb389 100644
--- a/security/lsm_audit.c
+++ b/security/lsm_audit.c
@@ -213,12 +213,15 @@ static void dump_common_audit_data(struct audit_buffer *ab,
{
struct task_struct *tsk = current;
- if (a->tsk)
- tsk = a->tsk;
- if (tsk && tsk->pid) {
- audit_log_format(ab, " pid=%d comm=", tsk->pid);
- audit_log_untrustedstring(ab, tsk->comm);
- }
+ /*
+ * To keep stack sizes in check force programers to notice if they
+ * start making this union too large! See struct lsm_network_audit
+ * as an example of how to deal with large data.
+ */
+ BUILD_BUG_ON(sizeof(a->u) > sizeof(void *)*2);
+
+ audit_log_format(ab, " pid=%d comm=", tsk->pid);
+ audit_log_untrustedstring(ab, tsk->comm);
switch (a->type) {
case LSM_AUDIT_DATA_NONE: