diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 5aa8108825839acbe7c38dd41b5f0232963a37ec..f19d5e04c69dc187cb4e2131a0cb6e477d4f57ac 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -3381,7 +3381,7 @@ static int sanitize_ptr_alu(struct bpf_verifier_env *env, *dst_reg = *ptr_reg; } ret = push_stack(env, env->insn_idx + 1, env->insn_idx, true); - if (!ptr_is_dst_reg) + if (!ptr_is_dst_reg && ret) *dst_reg = tmp; return !ret ? -EFAULT : 0; }