Lines Matching refs:bprm
185 static int load_elf_fdpic_binary(struct linux_binprm *bprm) in load_elf_fdpic_binary() argument
207 exec_params.hdr = *(struct elfhdr *) bprm->buf; in load_elf_fdpic_binary()
212 if (!is_elf(&exec_params.hdr, bprm->file)) in load_elf_fdpic_binary()
226 retval = elf_fdpic_fetch_phdrs(&exec_params, bprm->file); in load_elf_fdpic_binary()
248 retval = kernel_read(bprm->file, in load_elf_fdpic_binary()
277 would_dump(bprm, interpreter); in load_elf_fdpic_binary()
279 retval = kernel_read(interpreter, 0, bprm->buf, in load_elf_fdpic_binary()
287 interp_params.hdr = *((struct elfhdr *) bprm->buf); in load_elf_fdpic_binary()
343 retval = flush_old_exec(bprm); in load_elf_fdpic_binary()
357 setup_new_exec(bprm); in load_elf_fdpic_binary()
375 retval = setup_arg_pages(bprm, current->mm->start_stack, in load_elf_fdpic_binary()
382 retval = elf_fdpic_map_file(&exec_params, bprm->file, current->mm, in load_elf_fdpic_binary()
434 install_exec_creds(bprm); in load_elf_fdpic_binary()
435 if (create_elf_fdpic_tables(bprm, current->mm, in load_elf_fdpic_binary()
493 static int create_elf_fdpic_tables(struct linux_binprm *bprm, in create_elf_fdpic_tables() argument
513 sp = arch_align_stack(bprm->p); in create_elf_fdpic_tables()
518 if (elf_fdpic_transfer_args_to_stack(bprm, &sp) < 0) in create_elf_fdpic_tables()
587 if (bprm->interp_flags & BINPRM_FLAGS_EXECFD) in create_elf_fdpic_tables()
592 sp -= (bprm->envc + 1) * sizeof(char *); /* envv[] */ in create_elf_fdpic_tables()
593 sp -= (bprm->argc + 1) * sizeof(char *); /* argv[] */ in create_elf_fdpic_tables()
627 if (bprm->interp_flags & BINPRM_FLAGS_EXECFD) { in create_elf_fdpic_tables()
630 NEW_AUX_ENT(AT_EXECFD, bprm->interp_data); in create_elf_fdpic_tables()
651 NEW_AUX_ENT(AT_SECURE, security_bprm_secureexec(bprm)); in create_elf_fdpic_tables()
652 NEW_AUX_ENT(AT_EXECFN, bprm->exec); in create_elf_fdpic_tables()
666 csp -= (bprm->envc + 1) * sizeof(elf_caddr_t); in create_elf_fdpic_tables()
668 csp -= (bprm->argc + 1) * sizeof(elf_caddr_t); in create_elf_fdpic_tables()
673 __put_user(bprm->argc, (unsigned long __user *) csp); in create_elf_fdpic_tables()
679 current->mm->arg_start = bprm->p; in create_elf_fdpic_tables()
682 (MAX_ARG_PAGES * PAGE_SIZE - bprm->p); in create_elf_fdpic_tables()
686 for (loop = bprm->argc; loop > 0; loop--) { in create_elf_fdpic_tables()
698 for (loop = bprm->envc; loop > 0; loop--) { in create_elf_fdpic_tables()
718 static int elf_fdpic_transfer_args_to_stack(struct linux_binprm *bprm, in elf_fdpic_transfer_args_to_stack() argument
725 stop = bprm->p >> PAGE_SHIFT; in elf_fdpic_transfer_args_to_stack()
729 src = kmap(bprm->page[index]); in elf_fdpic_transfer_args_to_stack()
733 kunmap(bprm->page[index]); in elf_fdpic_transfer_args_to_stack()
738 *_sp = (*_sp - (MAX_ARG_PAGES * PAGE_SIZE - bprm->p)) & ~15; in elf_fdpic_transfer_args_to_stack()