]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
bpf: fix do_misc_fixups() for bpf_get_branch_snapshot()
authorAndrii Nakryiko <andrii@kernel.org>
Wed, 23 Oct 2024 16:19:16 +0000 (09:19 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 1 Nov 2024 01:02:37 +0000 (02:02 +0100)
[ Upstream commit 9806f283140ef3e4d259b7646bd8c66026bbaac5 ]

We need `goto next_insn;` at the end of patching instead of `continue;`.
It currently works by accident by making verifier re-process patched
instructions.

Reported-by: Shung-Hsi Yu <shung-hsi.yu@suse.com>
Fixes: 314a53623cd4 ("bpf: inline bpf_get_branch_snapshot() helper")
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Yonghong Song <yonghong.song@linux.dev>
Acked-by: Shung-Hsi Yu <shung-hsi.yu@suse.com>
Link: https://lore.kernel.org/r/20241023161916.2896274-1-andrii@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
kernel/bpf/verifier.c

index 62efe7f0aa46f37db56f3a74cb1517357282dbe7..77b60896200ef0a4253e75ab95192eac9081756f 100644 (file)
@@ -20675,7 +20675,7 @@ patch_map_ops_generic:
                        delta    += cnt - 1;
                        env->prog = prog = new_prog;
                        insn      = new_prog->insnsi + i + delta;
-                       continue;
+                       goto next_insn;
                }
 
                /* Implement bpf_kptr_xchg inline */