diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-02-21 16:25:50 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-02-21 16:25:50 -0500 |
commit | b8989bccd6a0ad49db4795afca56a733e1c19099 (patch) | |
tree | b9f974ea3ee701e75bcd5225497ba0a472322d1c /net/compat.c | |
parent | c9341ee0af4df0af8b727873ef851227345defed (diff) | |
parent | fe8e52b9b9100c486051aaf5208dbf4072bb87b1 (diff) |
Merge branch 'stable-4.11' of git://git.infradead.org/users/pcmoore/audit
Pull audit updates from Paul Moore:
"The audit changes for v4.11 are relatively small compared to what we
did for v4.10, both in terms of size and impact.
- two patches from Steve tweak the formatting for some of the audit
records to make them more consistent with other audit records.
- three patches from Richard record the name of a module on module
load, fix the logging of sockaddr information when using
socketcall() on 32-bit systems, and add the ability to reset
audit's lost record counter.
- my lone patch just fixes an annoying style nit that I was reminded
about by one of Richard's patches.
All these patches pass our test suite"
* 'stable-4.11' of git://git.infradead.org/users/pcmoore/audit:
audit: remove unnecessary curly braces from switch/case statements
audit: log module name on init_module
audit: log 32-bit socketcalls
audit: add feature audit_lost reset
audit: Make AUDIT_ANOM_ABEND event normalized
audit: Make AUDIT_KERNEL event conform to the specification
Diffstat (limited to 'net/compat.c')
-rw-r--r-- | net/compat.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/net/compat.c b/net/compat.c index 96c544b05b15..d69f539ca0bc 100644 --- a/net/compat.c +++ b/net/compat.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/filter.h> | 22 | #include <linux/filter.h> |
23 | #include <linux/compat.h> | 23 | #include <linux/compat.h> |
24 | #include <linux/security.h> | 24 | #include <linux/security.h> |
25 | #include <linux/audit.h> | ||
25 | #include <linux/export.h> | 26 | #include <linux/export.h> |
26 | 27 | ||
27 | #include <net/scm.h> | 28 | #include <net/scm.h> |
@@ -781,14 +782,24 @@ COMPAT_SYSCALL_DEFINE5(recvmmsg, int, fd, struct compat_mmsghdr __user *, mmsg, | |||
781 | 782 | ||
782 | COMPAT_SYSCALL_DEFINE2(socketcall, int, call, u32 __user *, args) | 783 | COMPAT_SYSCALL_DEFINE2(socketcall, int, call, u32 __user *, args) |
783 | { | 784 | { |
784 | int ret; | 785 | u32 a[AUDITSC_ARGS]; |
785 | u32 a[6]; | 786 | unsigned int len; |
786 | u32 a0, a1; | 787 | u32 a0, a1; |
788 | int ret; | ||
787 | 789 | ||
788 | if (call < SYS_SOCKET || call > SYS_SENDMMSG) | 790 | if (call < SYS_SOCKET || call > SYS_SENDMMSG) |
789 | return -EINVAL; | 791 | return -EINVAL; |
790 | if (copy_from_user(a, args, nas[call])) | 792 | len = nas[call]; |
793 | if (len > sizeof(a)) | ||
794 | return -EINVAL; | ||
795 | |||
796 | if (copy_from_user(a, args, len)) | ||
791 | return -EFAULT; | 797 | return -EFAULT; |
798 | |||
799 | ret = audit_socketcall_compat(len / sizeof(a[0]), a); | ||
800 | if (ret) | ||
801 | return ret; | ||
802 | |||
792 | a0 = a[0]; | 803 | a0 = a[0]; |
793 | a1 = a[1]; | 804 | a1 = a[1]; |
794 | 805 | ||