diff options
author | Andrii Nakryiko <andrii@kernel.org> | 2023-03-03 02:50:08 +0300 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2023-03-04 22:14:32 +0300 |
commit | d5271c5b1950b887def1663b75e2d710cc16535f (patch) | |
tree | f780d35578a46d886d53fdd12359f6f43f582ec0 /kernel | |
parent | d0e1ac227945c6af616c003365c6feb986dc0839 (diff) | |
download | linux-d5271c5b1950b887def1663b75e2d710cc16535f.tar.xz |
bpf: mark PTR_TO_MEM as non-null register type
PTR_TO_MEM register without PTR_MAYBE_NULL is indeed non-null. This is
important for BPF verifier to be able to prune guaranteed not to be
taken branches. This is always the case with open-coded iterators.
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20230302235015.2044271-11-andrii@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/bpf/verifier.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index ed9a96ad7b5b..d95975cbcc19 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -487,7 +487,8 @@ static bool reg_type_not_null(enum bpf_reg_type type) type == PTR_TO_TCP_SOCK || type == PTR_TO_MAP_VALUE || type == PTR_TO_MAP_KEY || - type == PTR_TO_SOCK_COMMON; + type == PTR_TO_SOCK_COMMON || + type == PTR_TO_MEM; } static bool type_is_ptr_alloc_obj(u32 type) |