diff options
Diffstat (limited to 'security/apparmor/audit.c')
| -rw-r--r-- | security/apparmor/audit.c | 11 | 
1 files changed, 9 insertions, 2 deletions
diff --git a/security/apparmor/audit.c b/security/apparmor/audit.c index cc3520d39a7..3ae28db5a64 100644 --- a/security/apparmor/audit.c +++ b/security/apparmor/audit.c @@ -111,7 +111,7 @@ static const char *const aa_audit_type[] = {  static void audit_pre(struct audit_buffer *ab, void *ca)  {  	struct common_audit_data *sa = ca; -	struct task_struct *tsk = sa->tsk ? sa->tsk : current; +	struct task_struct *tsk = sa->aad->tsk ? sa->aad->tsk : current;  	if (aa_g_audit_header) {  		audit_log_format(ab, "apparmor="); @@ -149,6 +149,12 @@ static void audit_pre(struct audit_buffer *ab, void *ca)  		audit_log_format(ab, " name=");  		audit_log_untrustedstring(ab, sa->aad->name);  	} + +	if (sa->aad->tsk) { +		audit_log_format(ab, " pid=%d comm=", tsk->pid); +		audit_log_untrustedstring(ab, tsk->comm); +	} +  }  /** @@ -205,7 +211,8 @@ int aa_audit(int type, struct aa_profile *profile, gfp_t gfp,  	aa_audit_msg(type, sa, cb);  	if (sa->aad->type == AUDIT_APPARMOR_KILL) -		(void)send_sig_info(SIGKILL, NULL, sa->tsk ? sa->tsk : current); +		(void)send_sig_info(SIGKILL, NULL, +				    sa->aad->tsk ?  sa->aad->tsk : current);  	if (sa->aad->type == AUDIT_APPARMOR_ALLOWED)  		return complain_error(sa->aad->error);  |