Function report |
Source Code:fs\exec.c |
Create Date:2022-07-28 20:03:56 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Finalizes the stack vm_area_struct. The flags and permissions are updated,* the stack is optionally relocated, and some extra space is added.
Proto:int setup_arg_pages(struct linux_binprm *bprm, unsigned long stack_top, int executable_stack)
Type:int
Parameter:
Type | Parameter | Name |
---|---|---|
struct linux_binprm * | bprm | |
unsigned long | stack_top | |
int | executable_stack |
698 | struct vm_area_struct * prev = NULL |
724 | stack_top = arch_align_stack(stack_top) |
733 | p -= stack_shift |
737 | If loader Then loader -= stack_shift |
739 | exec -= stack_shift |
741 | If lock for writing Then Return -EINTR |
744 | vm_flags = VM_STACK_FLAGS |
751 | If Value for the false possibility is greater at compile time(executable_stack == Enable executable stacks ) Then vm_flags |= VM_EXEC |
753 | Else if executable_stack == Disable executable stacks Then vm_flags &= ~VM_EXEC |
758 | ret = mprotect_fixup(vma, & prev, Our start address within vm_mm. , The first byte after our end addresswithin vm_mm. , vm_flags) |
760 | If ret Then Go to out_unlock |
765 | If stack_shift Then |
767 | If ret Then Go to out_unlock |
774 | stack_expand = 131072UL |
775 | stack_size = The first byte after our end addresswithin vm_mm. - Our start address within vm_mm. |
780 | rlim_stack = rlim_cur & PAGE_MASK |
787 | If stack_size + stack_expand > rlim_stack Then stack_base = The first byte after our end addresswithin vm_mm. - rlim_stack |
789 | Else stack_base = Our start address within vm_mm. - stack_expand |
792 | start_stack = p |
797 | out_unlock : |
799 | Return ret |
Name | Describe |
---|---|
load_aout_binary | These are the functions used to load a.out style executables and shared* libraries. There is no binary dependent code anywhere else. |
load_elf_binary | |
load_elf_fdpic_binary | load an fdpic binary into various bits of memory |
load_flat_binary | These are the functions used to load flat style executables and shared* libraries. There is no binary dependent code anywhere else. |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |