]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - kernel/auditsc.c
Merge branch 'stable-4.11' of git://git.infradead.org/users/pcmoore/audit
[mirror_ubuntu-bionic-kernel.git] / kernel / auditsc.c
index cf1fa43512c111b6fff0a81403acb62f9a4620a4..d6a8de5f8fa3d0ba33c14b20e6341e32d62dab2a 100644 (file)
@@ -1221,7 +1221,7 @@ static void show_special(struct audit_context *context, int *call_panic)
                                context->ipc.perm_mode);
                }
                break; }
-       case AUDIT_MQ_OPEN: {
+       case AUDIT_MQ_OPEN:
                audit_log_format(ab,
                        "oflag=0x%x mode=%#ho mq_flags=0x%lx mq_maxmsg=%ld "
                        "mq_msgsize=%ld mq_curmsgs=%ld",
@@ -1230,8 +1230,8 @@ static void show_special(struct audit_context *context, int *call_panic)
                        context->mq_open.attr.mq_maxmsg,
                        context->mq_open.attr.mq_msgsize,
                        context->mq_open.attr.mq_curmsgs);
-               break; }
-       case AUDIT_MQ_SENDRECV: {
+               break;
+       case AUDIT_MQ_SENDRECV:
                audit_log_format(ab,
                        "mqdes=%d msg_len=%zd msg_prio=%u "
                        "abs_timeout_sec=%ld abs_timeout_nsec=%ld",
@@ -1240,12 +1240,12 @@ static void show_special(struct audit_context *context, int *call_panic)
                        context->mq_sendrecv.msg_prio,
                        context->mq_sendrecv.abs_timeout.tv_sec,
                        context->mq_sendrecv.abs_timeout.tv_nsec);
-               break; }
-       case AUDIT_MQ_NOTIFY: {
+               break;
+       case AUDIT_MQ_NOTIFY:
                audit_log_format(ab, "mqdes=%d sigev_signo=%d",
                                context->mq_notify.mqdes,
                                context->mq_notify.sigev_signo);
-               break; }
+               break;
        case AUDIT_MQ_GETSETATTR: {
                struct mq_attr *attr = &context->mq_getsetattr.mqstat;
                audit_log_format(ab,
@@ -1255,19 +1255,24 @@ static void show_special(struct audit_context *context, int *call_panic)
                        attr->mq_flags, attr->mq_maxmsg,
                        attr->mq_msgsize, attr->mq_curmsgs);
                break; }
-       case AUDIT_CAPSET: {
+       case AUDIT_CAPSET:
                audit_log_format(ab, "pid=%d", context->capset.pid);
                audit_log_cap(ab, "cap_pi", &context->capset.cap.inheritable);
                audit_log_cap(ab, "cap_pp", &context->capset.cap.permitted);
                audit_log_cap(ab, "cap_pe", &context->capset.cap.effective);
-               break; }
-       case AUDIT_MMAP: {
+               break;
+       case AUDIT_MMAP:
                audit_log_format(ab, "fd=%d flags=0x%x", context->mmap.fd,
                                 context->mmap.flags);
-               break; }
-       case AUDIT_EXECVE: {
+               break;
+       case AUDIT_EXECVE:
                audit_log_execve_info(context, &ab);
-               break; }
+               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;
@@ -2411,7 +2425,7 @@ void audit_core_dumps(long signr)
        if (unlikely(!ab))
                return;
        audit_log_task(ab);
-       audit_log_format(ab, " sig=%ld", signr);
+       audit_log_format(ab, " sig=%ld res=1", signr);
        audit_log_end(ab);
 }