Function report |
Source Code:kernel\bpf\verifier.c |
Create Date:2022-07-28 13:03:13 |
| Last Modify:2022-05-19 20:02:10 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:d precise scalars in the previous equivalent state and* propagate them into the current state
Proto:static int propagate_precision(struct bpf_verifier_env *env, const struct bpf_verifier_state *old)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct bpf_verifier_env * | env | |
| const struct bpf_verifier_state * | old |
| 7442 | err = 0 |
| 7444 | state = call stack tracking [curframe] |
| 7446 | When i < BPF_REG_FP cycle |
| 7447 | If Ordering of fields matters. See states_equal() != g doesn't contain a valid pointer || Not if (!precise && SCALAR_VALUE) min/max/tnum don't affect safety Then Continue |
| 7450 | If level & BPF_LOG_LEVEL2 Then verbose(env, "propagating r%d\n", i) |
| 7452 | err = mark_chain_precision(env, i) |
| 7457 | When i < allocated_stack / size of eBPF register in bytes cycle |
| 7458 | If slot_type[0] != register spilled into stack Then Continue |
| 7460 | state_reg = spilled_ptr |
| 7461 | If Ordering of fields matters. See states_equal() != g doesn't contain a valid pointer || Not if (!precise && SCALAR_VALUE) min/max/tnum don't affect safety Then Continue |
| 7464 | If level & BPF_LOG_LEVEL2 Then verbose(env, "propagating fp%d\n", ( - i - 1) * size of eBPF register in bytes ) |
| 7467 | err = mark_chain_precision_stack(env, i) |
| 7471 | Return 0 |
| Name | Describe |
|---|---|
| is_state_visited |
| 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 |