aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/bpf
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/bpf')
-rw-r--r--kernel/bpf/verifier.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index 7e75434a9e54..1ede16c8bb40 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -2545,8 +2545,12 @@ static int check_helper_call(struct bpf_verifier_env *env, int func_id, int insn
2545 mark_reg_unknown(env, regs, BPF_REG_0); 2545 mark_reg_unknown(env, regs, BPF_REG_0);
2546 } else if (fn->ret_type == RET_VOID) { 2546 } else if (fn->ret_type == RET_VOID) {
2547 regs[BPF_REG_0].type = NOT_INIT; 2547 regs[BPF_REG_0].type = NOT_INIT;
2548 } else if (fn->ret_type == RET_PTR_TO_MAP_VALUE_OR_NULL) { 2548 } else if (fn->ret_type == RET_PTR_TO_MAP_VALUE_OR_NULL ||
2549 regs[BPF_REG_0].type = PTR_TO_MAP_VALUE_OR_NULL; 2549 fn->ret_type == RET_PTR_TO_MAP_VALUE) {
2550 if (fn->ret_type == RET_PTR_TO_MAP_VALUE)
2551 regs[BPF_REG_0].type = PTR_TO_MAP_VALUE;
2552 else
2553 regs[BPF_REG_0].type = PTR_TO_MAP_VALUE_OR_NULL;
2550 /* There is no offset yet applied, variable or fixed */ 2554 /* There is no offset yet applied, variable or fixed */
2551 mark_reg_known_zero(env, regs, BPF_REG_0); 2555 mark_reg_known_zero(env, regs, BPF_REG_0);
2552 regs[BPF_REG_0].off = 0; 2556 regs[BPF_REG_0].off = 0;