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;
 }