]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
bpf: Propagate error from visit_tailcall_insn
authorDaniel Borkmann <daniel@iogearbox.net>
Wed, 8 Apr 2026 19:12:39 +0000 (21:12 +0200)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 9 Apr 2026 01:43:28 +0000 (18:43 -0700)
Commit e40f5a6bf88a ("bpf: correct stack liveness for tail calls") added
visit_tailcall_insn() but did not check its return value.

Fixes: e40f5a6bf88a ("bpf: correct stack liveness for tail calls")
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/r/20260408191242.526279-1-daniel@iogearbox.net
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
kernel/bpf/verifier.c

index 594260c1f382a39d10ebce3c1eea6c1b21a3df36..db009d509aded67867360ff0b98a59c3620db67a 100644 (file)
@@ -19355,8 +19355,11 @@ static int visit_insn(int t, struct bpf_verifier_env *env)
                                mark_subprog_might_sleep(env, t);
                        if (bpf_helper_changes_pkt_data(insn->imm))
                                mark_subprog_changes_pkt_data(env, t);
-                       if (insn->imm == BPF_FUNC_tail_call)
-                               visit_tailcall_insn(env, t);
+                       if (insn->imm == BPF_FUNC_tail_call) {
+                               ret = visit_tailcall_insn(env, t);
+                               if (ret)
+                                       return ret;
+                       }
                } else if (insn->src_reg == BPF_PSEUDO_KFUNC_CALL) {
                        struct bpf_kfunc_call_arg_meta meta;