No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Arthur Fabre 85749218e3 bpf: Fix out of bounds memory access in bpf_sk_storage
bpf_sk_storage maps use multiple spin locks to reduce contention.
The number of locks to use is determined by the number of possible CPUs.
With only 1 possible CPU, bucket_log == 0, and 2^0 = 1 locks are used.

When updating elements, the correct lock is determined with hash_ptr().
Calling hash_ptr() with 0 bits is undefined behavior, as it does:

x >> (64 - bits)

Using the value results in an out of bounds memory access.
In my case, this manifested itself as a page fault when raw_spin_lock_bh()
is called later, when running the self tests:

./tools/testing/selftests/bpf/test_verifier 773 775
[   16.366342] BUG: unable to handle page fault for address: ffff8fe7a66f93f8

Force the minimum number of locks to two.

Signed-off-by: Arthur Fabre <afabre@cloudflare.com>
Fixes: 6ac99e8f23 ("bpf: Introduce bpf sk local storage")
Acked-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2019-06-15 14:37:56 -07:00
arch bpf, x64: fix stack layout of JITed bpf code 2019-06-14 18:02:25 -07:00
block block: print offending values when cloned rq limits are exceeded 2019-05-31 15:12:34 -06:00
certs
crypto Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2019-06-06 13:10:49 -07:00
Documentation linux-can-fixes-for-5.2-20190607 2019-06-09 19:44:01 -07:00
drivers nfp: ensure skb network header is set for packet redirect 2019-06-09 20:08:09 -07:00
fs Changes since last update: 2019-06-06 12:36:54 -07:00
include bpf: simplify definition of BPF_FIB_LOOKUP related flags 2019-06-13 22:43:42 +02:00
init
ipc
kernel bpf, devmap: Add missing RCU read lock on flush 2019-06-15 00:58:51 +02:00
lib SPDX fixes for 5.2-rc3, round 2 2019-06-02 10:22:38 -07:00
LICENSES
mm mm, compaction: make sure we isolate a valid PFN 2019-06-01 15:51:32 -07:00
net bpf: Fix out of bounds memory access in bpf_sk_storage 2019-06-15 14:37:56 -07:00
samples Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf 2019-06-07 14:46:47 -07:00
scripts Merge branch 'akpm' (patches from Andrew) 2019-06-02 08:51:30 -07:00
security Merge branch 'next-fixes-for-5.2-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity 2019-05-31 11:08:44 -07:00
sound treewide: fix typos of SPDX-License-Identifier 2019-06-01 18:29:58 +02:00
tools bpf: fix div64 overflow tests to properly detect errors 2019-06-13 23:07:00 +02:00
usr
virt Fixes for PPC and s390. 2019-06-02 10:19:39 -07:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS MAINTAINERS: Farewell Martin Schwidefsky 2019-05-31 10:14:11 +02:00
Kbuild
Kconfig
MAINTAINERS Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-06-07 09:29:14 -07:00
Makefile Linux 5.2-rc3 2019-06-02 13:55:33 -07:00
README

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

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

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.