diff options
author | Richard Guy Briggs <rgb@redhat.com> | 2017-02-04 13:10:38 -0500 |
---|---|---|
committer | Paul Moore <paul@paul-moore.com> | 2017-02-13 16:17:13 -0500 |
commit | ca86cad7380e373fa17bc0ee8aff121380323e69 (patch) | |
tree | 68407211f533b1e8c30ce3ffc60206347d3811af /kernel/auditsc.c | |
parent | 62bc306e2083436675e33b5bdeb6a77907d35971 (diff) | |
download | linux-stable-ca86cad7380e373fa17bc0ee8aff121380323e69.tar.gz linux-stable-ca86cad7380e373fa17bc0ee8aff121380323e69.tar.bz2 linux-stable-ca86cad7380e373fa17bc0ee8aff121380323e69.zip |
audit: log module name on init_module
This adds a new auxiliary record MODULE_INIT to the SYSCALL event.
We get finit_module for free since it made most sense to hook this in to
load_module().
https://github.com/linux-audit/audit-kernel/issues/7
https://github.com/linux-audit/audit-kernel/wiki/RFE-Module-Load-Record-Format
Signed-off-by: Richard Guy Briggs <rgb@redhat.com>
Acked-by: Jessica Yu <jeyu@redhat.com>
[PM: corrected links in the commit description]
Signed-off-by: Paul Moore <paul@paul-moore.com>
Diffstat (limited to 'kernel/auditsc.c')
-rw-r--r-- | kernel/auditsc.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/kernel/auditsc.c b/kernel/auditsc.c index bb5f504592c6..bde3aac4deed 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c @@ -1268,6 +1268,11 @@ static void show_special(struct audit_context *context, int *call_panic) case AUDIT_EXECVE: { audit_log_execve_info(context, &ab); break; } + case AUDIT_KERN_MODULE: + audit_log_format(ab, "name="); + audit_log_untrustedstring(ab, context->module.name); + kfree(context->module.name); + break; } audit_log_end(ab); } @@ -2368,6 +2373,15 @@ void __audit_mmap_fd(int fd, int flags) context->type = AUDIT_MMAP; } +void __audit_log_kern_module(char *name) +{ + struct audit_context *context = current->audit_context; + + context->module.name = kmalloc(strlen(name) + 1, GFP_KERNEL); + strcpy(context->module.name, name); + context->type = AUDIT_KERN_MODULE; +} + static void audit_log_task(struct audit_buffer *ab) { kuid_t auid, uid; |