Lines Matching refs:value_regno
2274 int off, int size, int value_regno, int insn_idx) in check_stack_write() argument
2296 if (value_regno >= 0) in check_stack_write()
2297 reg = &cur->regs[value_regno]; in check_stack_write()
2308 err = mark_chain_precision(env, value_regno); in check_stack_write()
2386 err = mark_chain_precision(env, value_regno); in check_stack_write()
2402 int off, int size, int value_regno) in check_stack_read() argument
2425 if (value_regno >= 0) { in check_stack_read()
2426 mark_reg_unknown(env, state->regs, value_regno); in check_stack_read()
2427 state->regs[value_regno].live |= REG_LIVE_WRITTEN; in check_stack_read()
2439 if (value_regno >= 0) { in check_stack_read()
2441 state->regs[value_regno] = *reg; in check_stack_read()
2446 state->regs[value_regno].live |= REG_LIVE_WRITTEN; in check_stack_read()
2474 if (value_regno >= 0) { in check_stack_read()
2479 __mark_reg_const_zero(&state->regs[value_regno]); in check_stack_read()
2490 state->regs[value_regno].precise = true; in check_stack_read()
2493 mark_reg_unknown(env, state->regs, value_regno); in check_stack_read()
2495 state->regs[value_regno].live |= REG_LIVE_WRITTEN; in check_stack_read()
3293 int value_regno) in check_ptr_to_btf_access() argument
3333 if (atype == BPF_READ && value_regno >= 0) in check_ptr_to_btf_access()
3334 mark_btf_ld_reg(env, regs, value_regno, ret, btf_id); in check_ptr_to_btf_access()
3343 int value_regno) in check_ptr_to_map_access() argument
3388 if (value_regno >= 0) in check_ptr_to_map_access()
3389 mark_btf_ld_reg(env, regs, value_regno, ret, btf_id); in check_ptr_to_map_access()
3403 int value_regno, bool strict_alignment_once) in check_mem_access() argument
3423 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
3424 is_pointer_value(env, value_regno)) { in check_mem_access()
3425 verbose(env, "R%d leaks addr into map\n", value_regno); in check_mem_access()
3432 if (!err && t == BPF_READ && value_regno >= 0) { in check_mem_access()
3447 regs[value_regno].type = SCALAR_VALUE; in check_mem_access()
3448 __mark_reg_known(®s[value_regno], val); in check_mem_access()
3450 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
3454 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
3455 is_pointer_value(env, value_regno)) { in check_mem_access()
3456 verbose(env, "R%d leaks addr into mem\n", value_regno); in check_mem_access()
3461 if (!err && t == BPF_READ && value_regno >= 0) in check_mem_access()
3462 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
3467 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
3468 is_pointer_value(env, value_regno)) { in check_mem_access()
3469 verbose(env, "R%d leaks addr into ctx\n", value_regno); in check_mem_access()
3480 if (!err && t == BPF_READ && value_regno >= 0) { in check_mem_access()
3486 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
3489 value_regno); in check_mem_access()
3491 regs[value_regno].id = ++env->id_gen; in check_mem_access()
3497 regs[value_regno].subreg_def = DEF_NOT_SUBREG; in check_mem_access()
3500 regs[value_regno].btf_id = btf_id; in check_mem_access()
3502 regs[value_regno].type = reg_type; in check_mem_access()
3518 value_regno, insn_idx); in check_mem_access()
3521 value_regno); in check_mem_access()
3527 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
3528 is_pointer_value(env, value_regno)) { in check_mem_access()
3530 value_regno); in check_mem_access()
3534 if (!err && t == BPF_READ && value_regno >= 0) in check_mem_access()
3535 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
3537 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
3538 is_pointer_value(env, value_regno)) { in check_mem_access()
3540 value_regno); in check_mem_access()
3545 if (!err && t == BPF_READ && value_regno >= 0) in check_mem_access()
3546 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
3554 if (!err && value_regno >= 0) in check_mem_access()
3555 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
3558 if (!err && t == BPF_READ && value_regno >= 0) in check_mem_access()
3559 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
3562 value_regno); in check_mem_access()
3565 value_regno); in check_mem_access()
3575 if (!err && value_regno >= 0) in check_mem_access()
3576 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
3581 if (!err && t == BPF_READ && value_regno >= 0) in check_mem_access()
3582 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
3589 if (!err && size < BPF_REG_SIZE && value_regno >= 0 && t == BPF_READ && in check_mem_access()
3590 regs[value_regno].type == SCALAR_VALUE) { in check_mem_access()
3592 coerce_reg_to_size(®s[value_regno], size); in check_mem_access()