函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:security\tomoyo\condition.c Create Date:2022-07-27 21:07:03
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:moyo_scan_bprm - Scan "struct linux_binprm".*@ee: Pointer to "struct tomoyo_execve".*@argc: Length of @argc.*@argv: Pointer to "struct tomoyo_argv".*@envc: Length of @envp.*@envp: Poiner to "struct tomoyo_envp".* Returns true on success, false otherwise.

函数原型:static bool tomoyo_scan_bprm(struct tomoyo_execve *ee, const u16 argc, const struct tomoyo_argv *argv, const u16 envc, const struct tomoyo_envp *envp)

返回类型:bool

参数:

类型参数名称
struct tomoyo_execve *ee
const u16argc
const struct tomoyo_argv *argv
const u16envc
const struct tomoyo_envp *envp
109  bprm等于bprm
110  dump等于 For dumping argv[] and envp[].
111  arg_ptr等于 Size is TOMOYO_EXEC_TMPSIZE bytes
112  arg_len等于0
113  pos等于current top of mem
114  offset等于pos取模PAGE_SIZE
115  argv_count等于argc
116  envp_count等于envc
117  bool result = true
121  如果argcenvc小于等于local_checked的长度则
122  checked等于local_checked
123  memset(local_checked, 0, local_checked的长度)
124  否则
125  checked等于分配内存并置零
126  如果非checked则返回:false
129 argv_countenvp_count循环
130  如果非tomoyo_dump_page(bprm, pos, dump)则
131  result = false
132  转到:out
134  pos加等于PAGE_SIZEoffset
135 offset小于PAGE_SIZE循环
138  c等于kaddr[offset++]
140  如果carg_len小于TOMOYO_EXEC_TMPSIZE减10则
141  如果c恒等于'\\'则
142  arg_ptr[arg_len++]等于'\\'
143  arg_ptr[arg_len++]等于'\\'
144  否则如果c大于' '且c小于127则
145  arg_ptr[arg_len++]等于c
146  否则
147  arg_ptr[arg_len++]等于'\\'
148  arg_ptr[arg_len++]等于c右移6位的值加'0'
149  arg_ptr[arg_len++]等于c右移3位按位与7的值加'0'
151  arg_ptr[arg_len++]等于c按位与7的值加'0'
153  否则
154  arg_ptr[arg_len]等于'\0'
156  如果c则继续下一循环
159  如果argv_count
167  否则如果envp_count
180  否则
181  退出
183  arg_len等于0
185  offset等于0
186  如果非result退出
189  out :
190  如果result
194 i小于argc循环
195  如果checked[i]则继续下一循环
201  如果is_not则继续下一循环
203  result = false
204  退出
206 i小于envc循环
207  如果checked[argc + i]则继续下一循环
213  如果非value且非is_notvalueis_not则继续下一循环
216  result = false
217  退出
220  如果checked不等于local_checked释放内存
222  返回:result
调用者
名称描述
tomoyo_conditionmoyo_condition - Check condition part.*@r: Pointer to "struct tomoyo_request_info".*@cond: Pointer to "struct tomoyo_condition". Maybe NULL.* Returns true on success, false otherwise.* Caller holds tomoyo_read_lock().