|
@@ -1848,11 +1848,24 @@ error_path:
|
|
|
}
|
|
|
EXPORT_SYMBOL(audit_log_task_context);
|
|
|
|
|
|
+void audit_log_d_path_exe(struct audit_buffer *ab,
|
|
|
+ struct mm_struct *mm)
|
|
|
+{
|
|
|
+ if (!mm) {
|
|
|
+ audit_log_format(ab, " exe=(null)");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ down_read(&mm->mmap_sem);
|
|
|
+ if (mm->exe_file)
|
|
|
+ audit_log_d_path(ab, " exe=", &mm->exe_file->f_path);
|
|
|
+ up_read(&mm->mmap_sem);
|
|
|
+}
|
|
|
+
|
|
|
void audit_log_task_info(struct audit_buffer *ab, struct task_struct *tsk)
|
|
|
{
|
|
|
const struct cred *cred;
|
|
|
char comm[sizeof(tsk->comm)];
|
|
|
- struct mm_struct *mm = tsk->mm;
|
|
|
char *tty;
|
|
|
|
|
|
if (!ab)
|
|
@@ -1888,13 +1901,7 @@ void audit_log_task_info(struct audit_buffer *ab, struct task_struct *tsk)
|
|
|
audit_log_format(ab, " comm=");
|
|
|
audit_log_untrustedstring(ab, get_task_comm(comm, tsk));
|
|
|
|
|
|
- if (mm) {
|
|
|
- down_read(&mm->mmap_sem);
|
|
|
- if (mm->exe_file)
|
|
|
- audit_log_d_path(ab, " exe=", &mm->exe_file->f_path);
|
|
|
- up_read(&mm->mmap_sem);
|
|
|
- } else
|
|
|
- audit_log_format(ab, " exe=(null)");
|
|
|
+ audit_log_d_path_exe(ab, tsk->mm);
|
|
|
audit_log_task_context(ab);
|
|
|
}
|
|
|
EXPORT_SYMBOL(audit_log_task_info);
|