Go to file
Craig Gallek 1b5f962e71 soreuseport: fix initialization race
Syzkaller stumbled upon a way to trigger
WARNING: CPU: 1 PID: 13881 at net/core/sock_reuseport.c:41
reuseport_alloc+0x306/0x3b0 net/core/sock_reuseport.c:39

There are two initialization paths for the sock_reuseport structure in a
socket: Through the udp/tcp bind paths of SO_REUSEPORT sockets or through
SO_ATTACH_REUSEPORT_[CE]BPF before bind.  The existing implementation
assumedthat the socket lock protected both of these paths when it actually
only protects the SO_ATTACH_REUSEPORT path.  Syzkaller triggered this
double allocation by running these paths concurrently.

This patch moves the check for double allocation into the reuseport_alloc
function which is protected by a global spin lock.

Fixes: e32ea7e747 ("soreuseport: fast reuseport UDP socket selection")
Fixes: c125e80b88 ("soreuseport: fast reuseport TCP socket selection")
Signed-off-by: Craig Gallek <kraig@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-10-22 02:03:51 +01:00
arch Merge branch 'ppc-bundle' (bundle from Michael Ellerman) 2017-10-09 19:08:32 -07:00
block bsg-lib: fix use-after-free under memory-pressure 2017-10-04 08:35:04 -06:00
certs
crypto
Documentation Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-10-09 16:25:00 -07:00
drivers net: aquantia: Bad udp rate on default interrupt coalescing 2017-10-21 12:32:24 +01:00
firmware
fs NFS client bugfixes for Linux 4.14 2017-10-09 10:55:37 -07:00
include tcp/dccp: fix ireq->opt races 2017-10-21 01:33:19 +01:00
init
ipc
kernel bpf: fix pattern matches for direct packet access 2017-10-22 00:56:09 +01:00
lib
mm mm, percpu: add support for __GFP_NOWARN flag 2017-10-19 13:13:49 +01:00
net soreuseport: fix initialization race 2017-10-22 02:03:51 +01:00
samples bpf: avoid preempt enable/disable in sockmap using tcp_skb_cb region 2017-10-20 13:01:29 +01:00
scripts
security
sound sound fixes for 4.14-rc4 2017-10-05 10:39:29 -07:00
tools bpf: add test cases to bpf selftests to cover all access tests 2017-10-22 00:56:09 +01:00
usr
virt
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap Update James Hogan's email address 2017-10-04 17:11:53 -07:00
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS ARC udpates for 4.14-rc4 2017-10-06 15:57:08 -07:00
Makefile Linux 4.14-rc4 2017-10-08 20:53:29 -07:00
README

Linux kernel
============

This file was moved to Documentation/admin-guide/README.rst

Please notice that there are several guides for kernel developers and users.
These guides can be rendered in a number of formats, like HTML and PDF.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.