函数逻辑报告 |
Source Code:kernel\bpf\verifier.c |
Create Date:2022-07-27 14:09:59 |
Last Modify:2022-05-19 20:02:10 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Mark a register as having a completely unknown (scalar) value.
函数原型:static void __mark_reg_unknown(const struct bpf_verifier_env *env, struct bpf_reg_state *reg)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
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 |
名称 | 描述 |
---|---|
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. |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |