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