linux/include
Alexei Starovoitov 6d94e741a8 bpf: Support for pointers beyond pkt_end.
This patch adds the verifier support to recognize inlined branch conditions.
The LLVM knows that the branch evaluates to the same value, but the verifier
couldn't track it. Hence causing valid programs to be rejected.
The potential LLVM workaround: https://reviews.llvm.org/D87428
can have undesired side effects, since LLVM doesn't know that
skb->data/data_end are being compared. LLVM has to introduce extra boolean
variable and use inline_asm trick to force easier for the verifier assembly.

Instead teach the verifier to recognize that
r1 = skb->data;
r1 += 10;
r2 = skb->data_end;
if (r1 > r2) {
  here r1 points beyond packet_end and
  subsequent
  if (r1 > r2) // always evaluates to "true".
}

Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Tested-by: Jiri Olsa <jolsa@redhat.com>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Link: https://lore.kernel.org/bpf/20201111031213.25109-2-alexei.starovoitov@gmail.com
2020-11-13 01:42:11 +01:00
..
acpi pci-v5.10-changes 2020-10-22 12:41:00 -07:00
asm-generic Kbuild updates for v5.10 2020-10-22 13:13:57 -07:00
clocksource
crypto X.509: Fix modular build of public_key_sm2 2020-10-08 16:39:14 +11:00
drm sound updates for 5.10 2020-10-15 11:07:44 -07:00
dt-bindings This pull request contains zero diff to the core framework. It is a collection 2020-10-22 12:53:28 -07:00
keys
kunit linux-kselftest-kunit-5.10-rc1 2020-10-18 14:45:59 -07:00
kvm ARM: 2020-10-23 11:17:56 -07:00
linux bpf: Support for pointers beyond pkt_end. 2020-11-13 01:42:11 +01:00
math-emu
media
memory
misc
net Fixes for 5.10-rc1 from the networking tree: 2020-10-23 12:05:49 -07:00
pcmcia
ras mm,hwpoison: introduce MF_MSG_UNSPLIT_THP 2020-10-16 11:11:17 -07:00
rdma RDMA: Explicitly pass in the dma_device to ib_register_device 2020-10-16 13:53:46 -03:00
scsi SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
soc networking changes for the 5.10 merge window 2020-10-15 18:42:13 -07:00
sound ASoC: Updates for v5.10 2020-10-12 16:08:57 +02:00
target
trace ARM: 2020-10-23 11:17:56 -07:00
uapi bpf: Assign ID to vmlinux BTF and return extra info for BTF in GET_OBJ_INFO 2020-11-10 15:25:53 -08:00
vdso
video
xen xen: branch for v5.10-rc1b 2020-10-20 09:24:01 -07:00