函数逻辑报告 |
Source Code:kernel\bpf\verifier.c |
Create Date:2022-07-27 14:16:28 |
Last Modify:2022-05-19 20:02:10 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:verify safety of LD_ABS|LD_IND instructions:* - they can only appear in the programs where ctx == skb* - since they are wrappers of function calls, they scratch R1-R5 registers,* preserve R6-R9, and store return value into R0* Implicit input:* ctx == skb
函数原型:static int check_ld_abs(struct bpf_verifier_env *env, struct bpf_insn *insn)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct bpf_verifier_env * | env | |
struct bpf_insn * | insn |
6275 | mode等于BPF BPF_DW 0x18 64-bit ( opcode ) |
6278 | 如果非may_access_skb( Type of BPF program )则 |
6280 | 返回:负EINVAL |
6283 | 如果非gen_ld_abs则 |
6288 | 如果subprog_cnt大于1则 |
6297 | 返回:负EINVAL |
6300 | 如果 dest register 不等于BPF_REG_0或 signed offset 不等于0或ld/ldx fields ( opcode )恒等于double word (64-bit) 或mode恒等于BPF_ABS且 source register 不等于BPF_REG_0则 |
6316 | err等于check_reference_leak(env) |
6317 | 如果err则 |
6322 | 如果active_spin_lock则 |
6324 | 返回:负EINVAL |
6345 | 以i小于CALLER_SAVED_REGS循环 |
6346 | mark_reg_not_init(env, regs, caller_saved[i]) |
6347 | check_reg_arg(env, caller_saved[i], DST_OP_NO_MARK) |
6354 | mark_reg_unknown(env, regs, BPF_REG_0) |
6357 | 返回:0 |
名称 | 描述 |
---|---|
do_check |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |