Andrii Nakryiko
b3b50f05dc
bpf: fix precision bit propagation for BPF_ST instructions
...
When backtracking instructions to propagate precision bit for registers
and stack slots, one class of instructions (BPF_ST) weren't handled
causing extra stack slots to be propagated into parent state. Parent
state might not have that much stack allocated, though, which causes
warning on invalid stack slot usage.
This patch adds handling of BPF_ST instructions:
BPF_MEM | <size> | BPF_ST: *(size *) (dst_reg + off) = imm32
Reported-by: syzbot+4da3ff23081bafe74fc2@syzkaller.appspotmail.com
Fixes: b5dc0163d8 ("bpf: precise scalar_value tracking")
Cc: Alexei Starovoitov <ast@fb.com>
Signed-off-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2019-07-12 14:48:52 +02:00
..
arraymap.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2019-06-17 20:20:36 -07:00
bpf_lru_list.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 206
2019-05-30 11:29:53 -07:00
bpf_lru_list.h
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 206
2019-05-30 11:29:53 -07:00
btf.c
bpf: fix NULL deref in btf_type_is_resolve_source_only
2019-06-24 15:53:19 +02:00
cgroup.c
bpf: cgroup: Fix build error without CONFIG_NET
2019-07-08 17:17:00 +02:00
core.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2019-07-08 19:48:57 -07:00
cpumap.c
devmap/cpumap: Use flush list instead of bitmap
2019-06-29 01:31:08 +02:00
devmap.c
devmap: Allow map lookups from eBPF
2019-06-29 01:31:09 +02:00
disasm.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 295
2019-06-05 17:36:38 +02:00
disasm.h
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 295
2019-06-05 17:36:38 +02:00
hashtab.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2019-06-17 20:20:36 -07:00
helpers.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 295
2019-06-05 17:36:38 +02:00
inode.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
local_storage.c
bpf: move memory size checks to bpf_map_charge_init()
2019-05-31 16:52:56 -07:00
lpm_trie.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2019-06-22 08:59:24 -04:00
Makefile
bpf: silence warning messages in core
2019-06-12 16:51:02 +02:00
map_in_map.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 206
2019-05-30 11:29:53 -07:00
map_in_map.h
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 206
2019-05-30 11:29:53 -07:00
offload.c
bpf: offload: add priv field for drivers
2019-02-12 17:07:09 +01:00
percpu_freelist.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 206
2019-05-30 11:29:53 -07:00
percpu_freelist.h
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 206
2019-05-30 11:29:53 -07:00
queue_stack_maps.c
bpf: move memory size checks to bpf_map_charge_init()
2019-05-31 16:52:56 -07:00
reuseport_array.c
bpf: move memory size checks to bpf_map_charge_init()
2019-05-31 16:52:56 -07:00
stackmap.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2019-06-07 11:00:14 -07:00
syscall.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2019-07-11 10:55:49 -07:00
tnum.c
treewide: Add SPDX license identifier for missed files
2019-05-21 10:50:45 +02:00
verifier.c
bpf: fix precision bit propagation for BPF_ST instructions
2019-07-12 14:48:52 +02:00
xskmap.c
xskmap: Move non-standard list manipulation to helper
2019-06-29 01:31:08 +02:00