函数逻辑报告 |
Source Code:kernel\bpf\verifier.c |
Create Date:2022-07-27 14:13:30 |
Last Modify:2022-05-19 20:02:10 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:check_func_call
函数原型:static int check_func_call(struct bpf_verifier_env *env, struct bpf_insn *insn, int *insn_idx)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct bpf_verifier_env * | env | |
struct bpf_insn * | insn | |
int * | insn_idx |
3951 | state等于current verifier state |
3955 | 如果curframe加1大于等于MAX_CALL_FRAMES则 |
3962 | subprog等于find_subprog(env, target_insn + 1) |
3963 | 如果subprog小于0则 |
3964 | verbose(env, "verifier bug. No program starts at insn %d\n", target_insn + 1) |
3966 | 返回:负EFAULT |
3969 | caller等于 call stack tracking [curframe] |
3970 | 如果 call stack tracking [curframe + 1]则 |
3979 | call stack tracking [curframe + 1]等于callee |
3992 | err等于transfer_reference_state(callee, caller) |
4003 | 以i小于CALLER_SAVED_REGS循环 |
4004 | mark_reg_not_init(env, regs, caller_saved[i]) |
4005 | check_reg_arg(env, caller_saved[i], DST_OP_NO_MARK) |
4009 | curframe自加 |
4011 | 如果btf_check_func_arg_match(env, subprog)则返回:负EINVAL |
4015 | insn_idx等于target_insn |
4017 | 如果level按位与BPF_LOG_LEVEL则 |
4019 | print_verifier_state(env, caller) |
4021 | print_verifier_state(env, callee) |
4023 | 返回:0 |
名称 | 描述 |
---|---|
do_check |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |