函数逻辑报告 |
Source Code:kernel\bpf\verifier.c |
Create Date:2022-07-27 14:10:17 |
Last Modify:2022-05-19 20:02:10 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Parentage chain of this register (or stack slot) should take care of all* issues like callee-saved registers, stack slot allocation time, etc.
函数原型:static int mark_reg_read(struct bpf_verifier_env *env, const struct bpf_reg_state *state, struct bpf_reg_state *parent, u8 flag)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct bpf_verifier_env * | env | |
const struct bpf_reg_state * | state | |
struct bpf_reg_state * | parent | |
u8 | flag |
1267 | cnt等于0 |
1274 | verbose(env, "verifier BUG type %s var_off %lld off %d\n", string representation of 'enum bpf_reg_type' [ Ordering of fields matters. See states_equal() ], value, Fixed part of pointer offset, pointer types only ) |
1277 | 返回:负EFAULT |
1282 | 如果live按位与REG_LIVE_READ的值恒等于flag或live按位与likewise, but full 64-bit content matters 则退出 |
1297 | 如果flag恒等于likewise, but full 64-bit content matters 则live与等于g was read, so we're sensitive to initial value 的反 |
1301 | writes = true |
1302 | cnt自加 |
1305 | 如果longest register parentage chain walked for liveness marking 小于cnt则longest register parentage chain walked for liveness marking 等于cnt |
1307 | 返回:0 |
名称 | 描述 |
---|---|
check_reg_arg | |
check_stack_read | |
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 |
propagate_liveness_reg | Return 0 if no propagation happened. Return negative error code if error* happened. Otherwise, return the propagated bit. |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |