Linux kernel source tree
Go to file
Kumar Kartikeya Dwivedi e6a908c593 libbpf: Fix skel_internal.h to set errno on loader retval < 0
[ Upstream commit e68ac00827 ]

When the loader indicates an internal error (result of a checked bpf
system call), it returns the result in attr.test.retval. However, tests
that rely on ASSERT_OK_PTR on NULL (returned from light skeleton) may
miss that NULL denotes an error if errno is set to 0. This would result
in skel pointer being NULL, while ASSERT_OK_PTR returning 1, leading to
a SEGV on dereference of skel, because libbpf_get_error relies on the
assumption that errno is always set in case of error for ptr == NULL.

In particular, this was observed for the ksyms_module test. When
executed using `./test_progs -t ksyms`, prior tests manipulated errno
and the test didn't crash when it failed at ksyms_module load, while
using `./test_progs -t ksyms_module` crashed due to errno being
untouched.

Fixes: 6723474373 (libbpf: Generate loader program out of BPF ELF file.)
Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20210927145941.1383001-11-memxor@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-11-18 19:16:27 +01:00
arch arm64: mm: update max_pfn after memory hotplug 2021-11-18 19:16:27 +01:00
block block: remove inaccurate requeue check 2021-11-18 19:16:17 +01:00
certs
crypto
Documentation fscrypt: allow 256-bit master keys with AES-256-XTS 2021-11-18 19:16:11 +01:00
drivers drm/amdgpu: fix warning for overflow check 2021-11-18 19:16:27 +01:00
fs erofs: don't trigger WARN() when decompression fails 2021-11-18 19:16:21 +01:00
include fortify: Fix dropped strcpy() compile-time write overflow check 2021-11-18 19:16:25 +01:00
init bootconfig: init: Fix memblock leak in xbc_make_cmdline() 2021-10-10 22:27:40 -04:00
ipc ipc: remove memcg accounting for sops objects in do_semtimedop() 2021-09-14 10:22:11 -07:00
kernel cgroup: Make rebind_subsystems() disable v2 controllers all at once 2021-11-18 19:16:24 +01:00
lib bpf/tests: Fix error in tail call limit tests 2021-11-18 19:16:26 +01:00
LICENSES
mm kfence: always use static branches to guard kfence_alloc() 2021-11-12 15:05:49 +01:00
net cfg80211: always free wiphy specific regdomain 2021-11-18 19:16:26 +01:00
samples samples/bpf: Fix application of sizeof to pointer 2021-11-18 19:16:18 +01:00
scripts leaking_addresses: Always print a trailing newline 2021-11-18 19:16:16 +01:00
security smackfs: use __GFP_NOFAIL for smk_cipso_doi() 2021-11-18 19:16:19 +01:00
sound ASoC: tegra: Restore AC97 support 2021-11-18 19:16:01 +01:00
tools libbpf: Fix skel_internal.h to set errno on loader retval < 0 2021-11-18 19:16:27 +01:00
usr
virt KVM: Remove tlbs_dirty 2021-09-23 11:01:12 -04:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap mailmap: add Andrej Shadura 2021-10-18 20:22:03 -10:00
COPYING
CREDITS MAINTAINERS: Move Daniel Drake to credits 2021-09-21 08:34:58 +03:00
Kbuild
Kconfig
MAINTAINERS drm fixes for 5.15 final 2021-10-28 12:17:01 -07:00
Makefile Linux 5.15.2 2021-11-12 15:05:52 +01: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.