From: Alexei Starovoitov Date: Tue, 29 Oct 2019 03:24:26 +0000 (-0700) Subject: bpf: Enforce 'return 0' in BTF-enabled raw_tp programs X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=15ab09bdca616538597fe4d2eb4db3c2d28716ba;p=linux.git bpf: Enforce 'return 0' in BTF-enabled raw_tp programs The return value of raw_tp programs is ignored by __bpf_trace_run() that calls them. The verifier also allows any value to be returned. For BTF-enabled raw_tp lets enforce 'return 0', so that return value can be used for something in the future. Signed-off-by: Alexei Starovoitov Signed-off-by: Daniel Borkmann Acked-by: Andrii Nakryiko Link: https://lore.kernel.org/bpf/20191029032426.1206762-1-ast@kernel.org --- diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index c59778c0fc4db..6b0de04f8b918 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -6279,6 +6279,11 @@ static int check_return_code(struct bpf_verifier_env *env) case BPF_PROG_TYPE_CGROUP_SYSCTL: case BPF_PROG_TYPE_CGROUP_SOCKOPT: break; + case BPF_PROG_TYPE_RAW_TRACEPOINT: + if (!env->prog->aux->attach_btf_id) + return 0; + range = tnum_const(0); + break; default: return 0; }