linux/tools/testing/selftests
Alexei Starovoitov 84dde8c8c9 bpf: Fix propagation of bounds from 64-bit min/max into 32-bit and var_off.
[ Upstream commit b9979db834 ]

Before this fix:
166: (b5) if r2 <= 0x1 goto pc+22
from 166 to 189: R2=invP(id=1,umax_value=1,var_off=(0x0; 0xffffffff))

After this fix:
166: (b5) if r2 <= 0x1 goto pc+22
from 166 to 189: R2=invP(id=1,umax_value=1,var_off=(0x0; 0x1))

While processing BPF_JLE the reg_set_min_max() would set true_reg->umax_value = 1
and call __reg_combine_64_into_32(true_reg).

Without the fix it would not pass the condition:
if (__reg64_bound_u32(reg->umin_value) && __reg64_bound_u32(reg->umax_value))

since umin_value == 0 at this point.
Before commit 10bf4e8316 the umin was incorrectly ingored.
The commit 10bf4e8316 fixed the correctness issue, but pessimized
propagation of 64-bit min max into 32-bit min max and corresponding var_off.

Fixes: 10bf4e8316 ("bpf: Fix propagation of 32 bit unsigned bounds from 64 bit bounds")
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/20211101222153.78759-1-alexei.starovoitov@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-11-18 14:04:13 +01:00
..
android
arm64 kselftest/arm64: signal: Skip tests if required features are missing 2021-09-30 10:11:03 +02:00
bpf bpf: Fix propagation of bounds from 64-bit min/max into 32-bit and var_off. 2021-11-18 14:04:13 +01:00
breakpoints
capabilities
cgroup
clone3 selftests: clone3: use SKIP instead of XFAIL 2020-11-05 10:08:15 -07:00
core selftests/core: fix conflicting types compile error for close_range() 2021-11-18 14:04:01 +01:00
cpu-hotplug
cpufreq
dmabuf-heaps kselftests: dmabuf-heaps: Fix Makefile's inclusion of the kernel's usr/include dir 2021-03-04 11:38:05 +01:00
drivers selftests: Clean forgotten resources as part of cleanup() 2021-07-19 09:44:49 +02:00
efivarfs
exec tools/testing/selftests/exec: fix link error 2021-05-26 12:06:49 +02:00
filesystems linux-kselftest-fixes-5.10-rc3 2020-11-06 15:42:42 -08:00
firmware selftests: firmware: Fix ignored return val of asprintf() warn 2021-09-18 13:40:20 +02:00
fpu
ftrace selftests/ftrace: Fix requirement check of README file 2021-09-18 13:40:07 +02:00
futex
gpio selftests/gpio: Fix build when source tree is read only 2021-06-03 09:00:31 +02:00
ia64
intel_pstate
ipc
ir
kcmp
kexec
kmod
kselftest tweewide: Fix most Shebang lines 2021-05-22 11:40:55 +02:00
kvm KVM: selftests: Fix nested SVM tests when built with clang 2021-11-18 14:04:10 +01:00
lib
livepatch
lkdtm selftests/lkdtm: Fix expected text for CR4 pinning 2021-07-19 09:45:00 +02:00
locking
media_tests
membarrier
memfd
memory-hotplug
mincore
mount
mqueue
net fcnal-test: kill hanging ping/nettest binaries on cleanup 2021-11-18 14:03:42 +01:00
netfilter selftests: netfilter: remove stray bash debug line 2021-10-27 09:56:54 +02:00
nsfs
ntb
openat2
pid_namespace
pidfd selftests: pidfd: drop needless linux/kcmp.h inclusion in pidfd_setns_test.c 2020-10-27 17:04:01 -06:00
powerpc selftests/powerpc: Fix "no_handler" EBB selftest 2021-07-20 16:05:43 +02:00
prctl
proc selftests: proc: fix warning: _GNU_SOURCE redefined 2020-11-05 10:08:14 -07:00
pstore
ptp
ptrace
rcutorture
resctrl Revert "selftests/resctrl: Use resctrl/info for feature detection" 2021-08-15 14:00:25 +02:00
rseq
rtc
safesetid
seccomp powerpc/64s/syscall: Use pt_regs.trap to distinguish syscall ABI difference between sc and scv syscalls 2021-05-26 12:06:53 +02:00
sigaltstack
size
sparc64
splice selftests: splice: Adjust for handler fallback removal 2021-07-14 16:56:42 +02:00
static_keys
sync
sysctl
tc-testing tc-testing: fix list handling 2021-07-14 16:56:26 +02:00
timens selftests/timens: Add a test for futex() 2020-10-20 17:02:57 +02:00
timers selftests: timers: rtcpie: skip test if default RTC device does not exist 2021-07-20 16:05:42 +02:00
tmpfs
tpm2
uevent
user
vDSO
vm selftest: fix build error in tools/testing/selftests/vm/userfaultfd.c 2021-08-04 12:46:39 +02:00
watchdog
wireguard wireguard: selftests: make sure rp_filter is disabled on vethc 2021-06-10 13:39:24 +02:00
x86
zram
.gitignore
gen_kselftest_tar.sh
kselftest_deps.sh
kselftest_harness.h linux-kselftest-fixes-5.10-rc3 2020-11-06 15:42:42 -08:00
kselftest_install.sh
kselftest_module.h
kselftest.h
lib.mk selftests: be sure to make khdr before other targets 2021-10-09 14:40:57 +02:00
Makefile
run_kselftest.sh selftests/run_kselftest.sh: fix dry-run typo 2020-12-30 11:53:07 +01:00