Function report |
Source Code:kernel\bpf\verifier.c |
Create Date:2022-07-28 12:56:39 |
| Last Modify:2022-05-19 20:02:10 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Mark a register as having a completely unknown (scalar) value.
Proto:static void __mark_reg_unknown(const struct bpf_verifier_env *env, struct bpf_reg_state *reg)
Type:void
Parameter:
| Type | Parameter | Name |
|---|---|---|
| const struct bpf_verifier_env * | env | |
| struct bpf_reg_state * | reg |
| 1065 | memset(reg, 0, offsetof(structbpf_reg_state, var_off)) |
| 1069 | if (!precise && SCALAR_VALUE) min/max/tnum don't affect safety = subprog_cnt > 1 || !allow_ptr_leaks ? true : false |
| Name | Describe |
|---|---|
| mark_reg_unknown | |
| __mark_reg_not_init | |
| check_stack_boundary | when register 'regno' is passed into function that will read 'access_size'* bytes from that pointer, make sure that it's within stack boundary* and all elements of stack are initialized |
| __clear_all_pkt_pointers | Packet data might have moved, any old PTR_TO_PACKET[_META,_END]* are now invalid, so turn them into unknown SCALAR_VALUE. |
| release_reg_references | |
| adjust_ptr_min_max_vals | Handles arithmetic on a pointer and a scalar: computes new min/max and var_off.* Caller should also handle BPF_MOV case separately.* If we return -EACCES, caller may want to try again treating pointer as a* scalar |
| adjust_scalar_min_max_vals | WARNING: This function does calculations on 64-bit values, but the actual* execution may occur on 32-bit values. Therefore, things like bitshifts* need extra checks in the 32-bit case. |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |