mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 06:01:57 +00:00
audit: consolidate handling of mm->exe_file
This patch adds a audit_log_d_path_exe() helper function to share how we handle auditing of the exe_file's path. Used by both audit and auditsc. No functionality is changed. Signed-off-by: Davidlohr Bueso <dbueso@suse.de> [PM: tweaked subject line] Signed-off-by: Paul Moore <pmoore@redhat.com>
This commit is contained in:
parent
5985de6754
commit
4766b199ef
@ -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);
|
||||
|
@ -270,6 +270,9 @@ extern struct list_head audit_filter_list[];
|
||||
|
||||
extern struct audit_entry *audit_dupe_rule(struct audit_krule *old);
|
||||
|
||||
extern void audit_log_d_path_exe(struct audit_buffer *ab,
|
||||
struct mm_struct *mm);
|
||||
|
||||
/* audit watch functions */
|
||||
#ifdef CONFIG_AUDIT_WATCH
|
||||
extern void audit_put_watch(struct audit_watch *watch);
|
||||
|
@ -2460,7 +2460,6 @@ static void audit_log_task(struct audit_buffer *ab)
|
||||
kuid_t auid, uid;
|
||||
kgid_t gid;
|
||||
unsigned int sessionid;
|
||||
struct mm_struct *mm = current->mm;
|
||||
char comm[sizeof(current->comm)];
|
||||
|
||||
auid = audit_get_loginuid(current);
|
||||
@ -2475,13 +2474,7 @@ static void audit_log_task(struct audit_buffer *ab)
|
||||
audit_log_task_context(ab);
|
||||
audit_log_format(ab, " pid=%d comm=", task_pid_nr(current));
|
||||
audit_log_untrustedstring(ab, get_task_comm(comm, current));
|
||||
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, current->mm);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user