函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:security\tomoyo\domain.c Create Date:2022-07-27 21:09:17
Last Modify:2022-05-23 20:14:46 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:moyo_environ - Check permission for environment variable names.*@ee: Pointer to "struct tomoyo_execve".* Returns 0 on success, negative value otherwise.

函数原型:static int tomoyo_environ(struct tomoyo_execve *ee)

返回类型:int

参数:

类型参数名称
struct tomoyo_execve *ee
617  r等于r
618  bprm等于bprm
620  struct tomoyo_page_dump env_page = {}
622  arg_len等于0
623  pos等于current top of mem
624  offset等于pos取模PAGE_SIZE
625  argv_count等于argc
626  envp_count等于envc
627  error等于负ENOMEM
629  type等于TOMOYO_MAC_ENVIRON
630  profile等于 Profile number to use.
631  One of tomoyo_mode_index . 等于moyo_get_mode - Get MAC mode.*@ns: Pointer to "struct tomoyo_policy_namespace".*@profile: Profile number.*@index: Index number of functionality.* Returns mode.
633  如果非One of tomoyo_mode_index . 或非envp_count则返回:0
635  arg_ptr等于分配内存并置零
636  如果非arg_ptr则转到:out
638 error恒等于负ENOMEM循环
639  如果非moyo_dump_page - Dump a page to buffer.*@bprm: Pointer to "struct linux_binprm".*@pos: Location to dump.*@dump: Poiner to "struct tomoyo_page_dump".* Returns true on success, false otherwise.则转到:out
641  pos加等于PAGE_SIZEoffset
647  如果argv_count
648  offset等于0
649  继续下一循环
651 offset小于PAGE_SIZE循环
654  如果carg_len小于TOMOYO_EXEC_TMPSIZE减10则
655  如果c恒等于'='则
656  arg_ptr[arg_len++]等于'\0'
657  否则如果c恒等于'\\'则
658  arg_ptr[arg_len++]等于'\\'
659  arg_ptr[arg_len++]等于'\\'
660  否则如果c大于' '且c小于127则
661  arg_ptr[arg_len++]等于c
662  否则
663  arg_ptr[arg_len++]等于'\\'
664  arg_ptr[arg_len++]等于c右移6位的值加'0'
665  arg_ptr[arg_len++]等于c右移3位按位与7的值加'0'
667  arg_ptr[arg_len++]等于c按位与7的值加'0'
669  否则
670  arg_ptr[arg_len]等于'\0'
672  如果c则继续下一循环
675  error等于负EPERM
676  退出
678  如果非envp_count先自减则
679  error等于0
680  退出
682  arg_len等于0
684  offset等于0
686  out :
687  如果One of tomoyo_mode_index . 不等于TOMOYO_CONFIG_ENFORCINGerror等于0
689  释放内存
690  释放内存
691  返回:error
调用者
名称描述
tomoyo_find_next_domainmoyo_find_next_domain - Find a domain.*@bprm: Pointer to "struct linux_binprm".* Returns 0 on success, negative value otherwise.* Caller holds tomoyo_read_lock().