Re: [PATCH bpf-next v4 1/4] bpf: Fix an off-by-one error in check_indirect_jump
From: Xu Kuohai
Date: Thu Jan 15 2026 - 02:31:46 EST
On 1/14/2026 6:29 PM, Anton Protopopov wrote:
On 26/01/14 05:39PM, Xu Kuohai wrote:
From: Xu Kuohai <xukuohai@xxxxxxxxxx>
Fix an off-by-one error in check_indirect_jump() that skips the last
element returned by copy_insn_array_uniq().
Fixes: 493d9e0d6083 ("bpf, x86: add support for indirect jumps")
Signed-off-by: Xu Kuohai <xukuohai@xxxxxxxxxx>
---
kernel/bpf/verifier.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index faa1ecc1fe9d..22605d9e0ffa 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -20336,7 +20336,7 @@ static int check_indirect_jump(struct bpf_verifier_env *env, struct bpf_insn *in
return -EINVAL;
}
- for (i = 0; i < n - 1; i++) {
+ for (i = 0; i < n; i++) {
other_branch = push_stack(env, env->gotox_tmp_buf->items[i],
env->insn_idx, env->cur_state->speculative);
if (IS_ERR(other_branch))
--
2.47.3
Nack, the last state doesn't require a push_stack() call, it is
verified directly under this loop. Instead of this patch, just
add another call to mark_indirect_target().
Ok, I see. Thanks for the explanation.