Lines Matching refs:bprm
167 static int load_elf_fdpic_binary(struct linux_binprm *bprm) in load_elf_fdpic_binary() argument
189 exec_params.hdr = *(struct elfhdr *) bprm->buf; in load_elf_fdpic_binary()
194 if (!is_elf_fdpic(&exec_params.hdr, bprm->file)) in load_elf_fdpic_binary()
198 retval = elf_fdpic_fetch_phdrs(&exec_params, bprm->file); in load_elf_fdpic_binary()
220 retval = kernel_read(bprm->file, in load_elf_fdpic_binary()
249 would_dump(bprm, interpreter); in load_elf_fdpic_binary()
251 retval = kernel_read(interpreter, 0, bprm->buf, in load_elf_fdpic_binary()
259 interp_params.hdr = *((struct elfhdr *) bprm->buf); in load_elf_fdpic_binary()
315 retval = flush_old_exec(bprm); in load_elf_fdpic_binary()
326 setup_new_exec(bprm); in load_elf_fdpic_binary()
344 retval = setup_arg_pages(bprm, current->mm->start_stack, in load_elf_fdpic_binary()
351 retval = elf_fdpic_map_file(&exec_params, bprm->file, current->mm, in load_elf_fdpic_binary()
408 install_exec_creds(bprm); in load_elf_fdpic_binary()
409 if (create_elf_fdpic_tables(bprm, current->mm, in load_elf_fdpic_binary()
467 static int create_elf_fdpic_tables(struct linux_binprm *bprm, in create_elf_fdpic_tables() argument
487 sp = arch_align_stack(bprm->p); in create_elf_fdpic_tables()
492 if (elf_fdpic_transfer_args_to_stack(bprm, &sp) < 0) in create_elf_fdpic_tables()
561 if (bprm->interp_flags & BINPRM_FLAGS_EXECFD) in create_elf_fdpic_tables()
566 sp -= (bprm->envc + 1) * sizeof(char *); /* envv[] */ in create_elf_fdpic_tables()
567 sp -= (bprm->argc + 1) * sizeof(char *); /* argv[] */ in create_elf_fdpic_tables()
601 if (bprm->interp_flags & BINPRM_FLAGS_EXECFD) { in create_elf_fdpic_tables()
604 NEW_AUX_ENT(AT_EXECFD, bprm->interp_data); in create_elf_fdpic_tables()
625 NEW_AUX_ENT(AT_SECURE, security_bprm_secureexec(bprm)); in create_elf_fdpic_tables()
626 NEW_AUX_ENT(AT_EXECFN, bprm->exec); in create_elf_fdpic_tables()
640 csp -= (bprm->envc + 1) * sizeof(elf_caddr_t); in create_elf_fdpic_tables()
642 csp -= (bprm->argc + 1) * sizeof(elf_caddr_t); in create_elf_fdpic_tables()
647 __put_user(bprm->argc, (unsigned long __user *) csp); in create_elf_fdpic_tables()
653 current->mm->arg_start = bprm->p; in create_elf_fdpic_tables()
656 (MAX_ARG_PAGES * PAGE_SIZE - bprm->p); in create_elf_fdpic_tables()
660 for (loop = bprm->argc; loop > 0; loop--) { in create_elf_fdpic_tables()
672 for (loop = bprm->envc; loop > 0; loop--) { in create_elf_fdpic_tables()
692 static int elf_fdpic_transfer_args_to_stack(struct linux_binprm *bprm, in elf_fdpic_transfer_args_to_stack() argument
699 stop = bprm->p >> PAGE_SHIFT; in elf_fdpic_transfer_args_to_stack()
703 src = kmap(bprm->page[index]); in elf_fdpic_transfer_args_to_stack()
707 kunmap(bprm->page[index]); in elf_fdpic_transfer_args_to_stack()
712 *_sp = (*_sp - (MAX_ARG_PAGES * PAGE_SIZE - bprm->p)) & ~15; in elf_fdpic_transfer_args_to_stack()