This prevents us from trying to recover from these on speculative paths
in the future.

Signed-off-by: Luis Gerhorst <luis.gerho...@fau.de>
Acked-by: Henriette Herzog <henriette.her...@rub.de>
Cc: Maximilian Ott <o...@cs.fau.de>
Cc: Milan Stephan <milan.step...@fau.de>
---
 kernel/bpf/verifier.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index 6234d0bb59d6..eb65038682b0 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -11591,7 +11591,7 @@ static int check_helper_call(struct bpf_verifier_env 
*env, struct bpf_insn *insn
                                verbose(env, "verifier internal error:");
                                verbose(env, "func %s has non-overwritten 
BPF_PTR_POISON return type\n",
                                        func_id_name(func_id));
-                               return -EINVAL;
+                               return -EFAULT;
                        }
                        ret_btf = btf_vmlinux;
                        ret_btf_id = *fn->ret_btf_id;
@@ -15092,12 +15092,12 @@ static int adjust_reg_min_max_vals(struct 
bpf_verifier_env *env,
        if (WARN_ON_ONCE(ptr_reg)) {
                print_verifier_state(env, vstate, vstate->curframe, true);
                verbose(env, "verifier internal error: unexpected ptr_reg\n");
-               return -EINVAL;
+               return -EFAULT;
        }
        if (WARN_ON(!src_reg)) {
                print_verifier_state(env, vstate, vstate->curframe, true);
                verbose(env, "verifier internal error: no src_reg\n");
-               return -EINVAL;
+               return -EFAULT;
        }
        err = adjust_scalar_min_max_vals(env, insn, dst_reg, *src_reg);
        if (err)
-- 
2.48.1


Reply via email to