函数逻辑报告 | 
Source Code:fs\binfmt_elf_fdpic.c | 
Create Date:2022-07-29 11:03:54 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:present useful information to the program by shovelling it onto the new* process's stack
函数原型:static int create_elf_fdpic_tables(struct linux_binprm *bprm, struct mm_struct *mm, struct elf_fdpic_params *exec_params, struct elf_fdpic_params *interp_params)
返回类型:int
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| struct linux_binprm * | bprm | |
| struct mm_struct * | mm | |
| struct elf_fdpic_params * | exec_params | |
| struct elf_fdpic_params * | interp_params | 
| 502 | cred等于current_cred - Access the current task's subjective credentials* Access the subjective credentials of the current task. RCU-safe,* since nobody else can modify it.() | 
| 505 | platform_len等于0 | 
| 507 | __user乘u_platform | 
| 517 | sp等于arch_align_stack(p) | 
| 533 | k_platform等于ELF_PLATFORM | 
| 534 | u_platform = NULL | 
| 536 | 如果k_platform则 | 
| 538 | sp减等于platform_len | 
| 539 | u_platform等于sp | 
| 540 | 如果__copy_to_user(u_platform, k_platform, platform_len)不等于0则返回:负EFAULT | 
| 549 | u_base_platform = NULL | 
| 551 | 如果k_base_platform则 | 
| 553 | sp减等于platform_len | 
| 554 | u_base_platform等于sp | 
| 555 | 如果__copy_to_user(u_base_platform, k_base_platform, platform_len)不等于0则返回:负EFAULT | 
| 559 | sp与等于7UL的反 | 
| 562 | len等于sizeof(structelf32_fdpic_loadmap) | 
| 563 | len加等于sizeof(structelf32_fdpic_loadseg)乘 number of segments | 
| 567 | 如果copy_to_user((void__user * )sp, loadmap to be passed to userspace , len)不等于0则返回:负EFAULT | 
| 570 | exec_fdpic_loadmap等于sp | 
| 573 | len等于sizeof(structelf32_fdpic_loadmap) | 
| 574 | len加等于sizeof(structelf32_fdpic_loadseg)乘 number of segments | 
| 579 | 如果copy_to_user((void__user * )sp, loadmap to be passed to userspace , len)不等于0则返回:负EFAULT | 
| 583 | interp_fdpic_loadmap等于sp | 
| 589 | nitems等于1加rce 16 byte _final_ alignment here for generality 加如果k_platform则1否则0加如果k_base_platform则1否则0加ries in ARCH_DLINFO: | 
| 592 | 如果interp_flags按位与BINPRM_FLAGS_EXECFD则nitems自加 | 
| 615 | nr等于0 | 
| 618 | 如果k_platform则 | 
| 619 | nr等于0 | 
| 621 | put the ELF interpreter info on the stack (string identifying CPU for optimizations , (elf_addr_t)(unsignedlong)u_platform) | 
| 625 | 如果k_base_platform则 | 
| 626 | nr等于0 | 
| 632 | 如果interp_flags按位与BINPRM_FLAGS_EXECFD则 | 
| 633 | nr等于0 | 
| 638 | nr等于0 | 
| 639 | csp减等于rce 16 byte _final_ alignment here for generality 乘2乘sizeof(unsignedlong) | 
| 646 | put the ELF interpreter info on the stack (program headers for program , mapped PT_PHDR user address ) | 
| 649 | put the ELF interpreter info on the stack (ase address of interpreter , mapped ELF header user address ) | 
| 660 | nr等于0 | 
| 661 | csp减等于ries in ARCH_DLINFO: 乘2乘sizeof(unsignedlong) | 
| 666 | ARCH_DLINFO | 
| 671 | csp减等于envc加1的和乘sizeof(elf_caddr_t) | 
| 673 | csp减等于argc加1的和乘sizeof(elf_caddr_t) | 
| 678 | __put_user - Write a simple value into user space, with less checking(argc, (unsignedlong__user * )csp) | 
| 704 | __put_user - Write a simple value into user space, with less checking((elf_caddr_t)(unsignedlong)p, envp++) | 
| 713 | start_stack等于sp | 
| 714 | 返回:0 | 
| 名称 | 描述 | 
|---|---|
| load_elf_fdpic_binary | load an fdpic binary into various bits of memory | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |