函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |