bpf: Fix check_return_code to only allow [0,1] in trace_iter progs
As per15d83c4d7c
("bpf: Allow loading of a bpf_iter program") we only allow a range of [0,1] for return codes. Therefore BPF_TRACE_ITER relies on the default tnum_range(0, 1) which is set in range var. On recent merge of net into net-next commite92888c72f
("bpf: Enforce returning 0 for fentry/fexit progs") got pulled in and caused a merge conflict with the changes from15d83c4d7c
. The resolution had a snall hiccup in that it removed the [0,1] range restriction again so that BPF_TRACE_ITER would have no enforcement. Fix it by adding it back. Fixes:da07f52d3c
("Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net") Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
da07f52d3c
commit
2ec0616e87
|
@ -7120,10 +7120,11 @@ static int check_return_code(struct bpf_verifier_env *env)
|
|||
case BPF_TRACE_FEXIT:
|
||||
range = tnum_const(0);
|
||||
break;
|
||||
case BPF_TRACE_ITER:
|
||||
case BPF_TRACE_RAW_TP:
|
||||
case BPF_MODIFY_RETURN:
|
||||
return 0;
|
||||
case BPF_TRACE_ITER:
|
||||
break;
|
||||
default:
|
||||
return -ENOTSUPP;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue