Home
last modified time | relevance | path

Searched refs:bprm (Results 1 – 25 of 58) sorted by relevance

123

/Linux-v5.4/fs/
Dexec.c183 static void acct_arg_size(struct linux_binprm *bprm, unsigned long pages) in acct_arg_size() argument
186 long diff = (long)(pages - bprm->vma_pages); in acct_arg_size()
191 bprm->vma_pages = pages; in acct_arg_size()
195 static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos, in get_arg_page() argument
204 ret = expand_downwards(bprm->vma, pos); in get_arg_page()
217 ret = get_user_pages_remote(current, bprm->mm, pos, 1, gup_flags, in get_arg_page()
223 acct_arg_size(bprm, vma_pages(bprm->vma)); in get_arg_page()
233 static void free_arg_pages(struct linux_binprm *bprm) in free_arg_pages() argument
237 static void flush_arg_page(struct linux_binprm *bprm, unsigned long pos, in flush_arg_page() argument
240 flush_cache_page(bprm->vma, pos, page_to_pfn(page)); in flush_arg_page()
[all …]
Dbinfmt_script.c34 static int load_script(struct linux_binprm *bprm) in load_script() argument
42 if ((bprm->buf[0] != '#') || (bprm->buf[1] != '!')) in load_script()
51 if (bprm->interp_flags & BINPRM_FLAGS_PATH_INACCESSIBLE) in load_script()
55 allow_write_access(bprm->file); in load_script()
56 fput(bprm->file); in load_script()
57 bprm->file = NULL; in load_script()
73 buf_end = bprm->buf + sizeof(bprm->buf) - 1; in load_script()
74 cp = strnchr(bprm->buf, sizeof(bprm->buf), '\n'); in load_script()
76 cp = next_non_spacetab(bprm->buf + 2, buf_end); in load_script()
89 while (cp > bprm->buf) { in load_script()
[all …]
Dbinfmt_em86.c26 static int load_em86(struct linux_binprm *bprm) in load_em86() argument
35 elf_ex = *((struct elfhdr *)bprm->buf); in load_em86()
43 !bprm->file->f_op->mmap) { in load_em86()
48 if (bprm->interp_flags & BINPRM_FLAGS_PATH_INACCESSIBLE) in load_em86()
51 allow_write_access(bprm->file); in load_em86()
52 fput(bprm->file); in load_em86()
53 bprm->file = NULL; in load_em86()
70 remove_arg_zero(bprm); in load_em86()
71 retval = copy_strings_kernel(1, &bprm->filename, bprm); in load_em86()
73 bprm->argc++; in load_em86()
[all …]
Dbinfmt_aout.c59 static unsigned long __user *create_aout_tables(char __user *p, struct linux_binprm * bprm) in create_aout_tables() argument
64 int argc = bprm->argc; in create_aout_tables()
65 int envc = bprm->envc; in create_aout_tables()
72 if (bprm->loader) { in create_aout_tables()
75 put_user(bprm->loader, --sp); in create_aout_tables()
78 put_user(bprm->exec, --sp); in create_aout_tables()
117 static int load_aout_binary(struct linux_binprm * bprm) in load_aout_binary() argument
126 ex = *((struct exec *) bprm->buf); /* exec-header */ in load_aout_binary()
130 i_size_read(file_inode(bprm->file)) < ex.a_text+ex.a_data+N_SYMSIZE(ex)+N_TXTOFF(ex)) { in load_aout_binary()
138 if (!bprm->file->f_op->mmap) in load_aout_binary()
[all …]
Dbinfmt_flat.c123 static int create_flat_tables(struct linux_binprm *bprm, unsigned long arg_start) in create_flat_tables() argument
132 sp -= bprm->envc + 1; in create_flat_tables()
133 sp -= bprm->argc + 1; in create_flat_tables()
141 __put_user(bprm->argc, sp++); in create_flat_tables()
145 envp = (unsigned long)(sp + 2 + bprm->argc + 1); in create_flat_tables()
151 for (i = bprm->argc; i > 0; i--) { in create_flat_tables()
162 for (i = bprm->envc; i > 0; i--) { in create_flat_tables()
192 static int decompress_exec(struct linux_binprm *bprm, loff_t fpos, char *dst, in decompress_exec() argument
213 ret = kernel_read(bprm->file, buf, LBUFSIZE, &fpos); in decompress_exec()
283 ret = kernel_read(bprm->file, buf, LBUFSIZE, &fpos); in decompress_exec()
[all …]
Dbinfmt_misc.c90 static Node *check_file(struct linux_binprm *bprm) in check_file() argument
92 char *p = strrchr(bprm->interp, '.'); in check_file()
113 s = bprm->buf + e->offset; in check_file()
132 static int load_misc_binary(struct linux_binprm *bprm) in load_misc_binary() argument
145 fmt = check_file(bprm); in load_misc_binary()
154 if (bprm->interp_flags & BINPRM_FLAGS_PATH_INACCESSIBLE) in load_misc_binary()
158 retval = remove_arg_zero(bprm); in load_misc_binary()
174 fd_install(fd_binary, bprm->file); in load_misc_binary()
178 would_dump(bprm, bprm->file); in load_misc_binary()
180 allow_write_access(bprm->file); in load_misc_binary()
[all …]
Dbinfmt_elf_fdpic.c182 static int load_elf_fdpic_binary(struct linux_binprm *bprm) in load_elf_fdpic_binary() argument
205 exec_params.hdr = *(struct elfhdr *) bprm->buf; in load_elf_fdpic_binary()
210 if (!is_elf(&exec_params.hdr, bprm->file)) in load_elf_fdpic_binary()
224 retval = elf_fdpic_fetch_phdrs(&exec_params, bprm->file); in load_elf_fdpic_binary()
247 retval = kernel_read(bprm->file, interpreter_name, in load_elf_fdpic_binary()
274 would_dump(bprm, interpreter); in load_elf_fdpic_binary()
277 retval = kernel_read(interpreter, bprm->buf, in load_elf_fdpic_binary()
285 interp_params.hdr = *((struct elfhdr *) bprm->buf); in load_elf_fdpic_binary()
341 retval = flush_old_exec(bprm); in load_elf_fdpic_binary()
355 setup_new_exec(bprm); in load_elf_fdpic_binary()
[all …]
Dbinfmt_elf.c60 static int load_elf_binary(struct linux_binprm *bprm);
164 create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec, in create_elf_tables() argument
167 unsigned long p = bprm->p; in create_elf_tables()
168 int argc = bprm->argc; in create_elf_tables()
169 int envc = bprm->envc; in create_elf_tables()
259 NEW_AUX_ENT(AT_SECURE, bprm->secureexec); in create_elf_tables()
264 NEW_AUX_ENT(AT_EXECFN, bprm->exec); in create_elf_tables()
273 if (bprm->interp_flags & BINPRM_FLAGS_EXECFD) { in create_elf_tables()
274 NEW_AUX_ENT(AT_EXECFD, bprm->interp_data); in create_elf_tables()
287 bprm->p = STACK_ROUND(sp, items); in create_elf_tables()
[all …]
/Linux-v5.4/arch/alpha/kernel/
Dbinfmt_loader.c9 static int load_binary(struct linux_binprm *bprm) in load_binary() argument
11 struct exec *eh = (struct exec *)bprm->buf; in load_binary()
19 if (bprm->loader) in load_binary()
22 allow_write_access(bprm->file); in load_binary()
23 fput(bprm->file); in load_binary()
24 bprm->file = NULL; in load_binary()
26 loader = bprm->vma->vm_end - sizeof(void *); in load_binary()
34 bprm->taso = eh->ah.entry < 0x100000000UL; in load_binary()
36 bprm->file = file; in load_binary()
37 bprm->loader = loader; in load_binary()
[all …]
/Linux-v5.4/arch/x86/ia32/
Dia32_aout.c64 static u32 __user *create_aout_tables(char __user *p, struct linux_binprm *bprm) in create_aout_tables() argument
67 int argc = bprm->argc, envc = bprm->envc; in create_aout_tables()
105 static int load_aout_binary(struct linux_binprm *bprm) in load_aout_binary() argument
112 ex = *((struct exec *) bprm->buf); /* exec-header */ in load_aout_binary()
116 i_size_read(file_inode(bprm->file)) < in load_aout_binary()
134 retval = flush_old_exec(bprm); in load_aout_binary()
142 setup_new_exec(bprm); in load_aout_binary()
155 retval = setup_arg_pages(bprm, IA32_STACK_TOP, EXSTACK_DEFAULT); in load_aout_binary()
159 install_exec_creds(bprm); in load_aout_binary()
172 error = read_code(bprm->file, text_addr, 32, in load_aout_binary()
[all …]
/Linux-v5.4/security/apparmor/
Ddomain.c309 static int aa_xattrs_match(const struct linux_binprm *bprm, in aa_xattrs_match() argument
318 if (!bprm || !profile->xattr_count) in aa_xattrs_match()
324 d = bprm->file->f_path.dentry; in aa_xattrs_match()
379 static struct aa_profile *__attach_match(const struct linux_binprm *bprm, in __attach_match() argument
421 ret = aa_xattrs_match(bprm, profile, state); in __attach_match()
474 static struct aa_label *find_attach(const struct linux_binprm *bprm, in find_attach() argument
481 profile = aa_get_profile(__attach_match(bprm, name, list, info)); in find_attach()
547 const struct linux_binprm *bprm, in x_to_label() argument
575 new = find_attach(bprm, ns, &profile->base.profiles, in x_to_label()
579 new = find_attach(bprm, ns, &ns->base.profiles, in x_to_label()
[all …]
/Linux-v5.4/include/linux/
Dbinfmts.h123 extern int flush_old_exec(struct linux_binprm * bprm);
124 extern void setup_new_exec(struct linux_binprm * bprm);
125 extern void finalize_exec(struct linux_binprm *bprm);
135 extern int setup_arg_pages(struct linux_binprm * bprm,
138 extern int transfer_args_to_stack(struct linux_binprm *bprm,
140 extern int bprm_change_interp(const char *interp, struct linux_binprm *bprm);
142 struct linux_binprm *bprm);
143 extern void install_exec_creds(struct linux_binprm *bprm);
Daudit.h364 extern void __audit_bprm(struct linux_binprm *bprm);
372 extern int __audit_log_bprm_fcaps(struct linux_binprm *bprm,
397 static inline void audit_bprm(struct linux_binprm *bprm) in audit_bprm() argument
400 __audit_bprm(bprm); in audit_bprm()
449 static inline int audit_log_bprm_fcaps(struct linux_binprm *bprm, in audit_log_bprm_fcaps() argument
454 return __audit_log_bprm_fcaps(bprm, new, old); in audit_log_bprm_fcaps()
581 static inline void audit_bprm(struct linux_binprm *bprm) in audit_bprm() argument
610 static inline int audit_log_bprm_fcaps(struct linux_binprm *bprm, in audit_log_bprm_fcaps() argument
Dima.h16 extern int ima_bprm_check(struct linux_binprm *bprm);
48 static inline int ima_bprm_check(struct linux_binprm *bprm) in ima_bprm_check() argument
/Linux-v5.4/security/
Dcommoncap.c529 struct linux_binprm *bprm, in bprm_caps_from_vfs_caps() argument
533 struct cred *new = bprm->cred; in bprm_caps_from_vfs_caps()
650 static int get_file_caps(struct linux_binprm *bprm, bool *effective, bool *has_fcap) in get_file_caps() argument
655 cap_clear(bprm->cred->cap_permitted); in get_file_caps()
660 if (!mnt_may_suid(bprm->file->f_path.mnt)) in get_file_caps()
668 if (!current_in_userns(bprm->file->f_path.mnt->mnt_sb->s_user_ns)) in get_file_caps()
671 rc = get_vfs_caps_from_disk(bprm->file->f_path.dentry, &vcaps); in get_file_caps()
675 bprm->filename); in get_file_caps()
681 rc = bprm_caps_from_vfs_caps(&vcaps, bprm, effective, has_fcap); in get_file_caps()
685 cap_clear(bprm->cred->cap_permitted); in get_file_caps()
[all …]
/Linux-v5.4/security/tomoyo/
Daudit.c22 static char *tomoyo_print_bprm(struct linux_binprm *bprm, in tomoyo_print_bprm() argument
30 unsigned long pos = bprm->p; in tomoyo_print_bprm()
32 int argv_count = bprm->argc; in tomoyo_print_bprm()
33 int envp_count = bprm->envc; in tomoyo_print_bprm()
46 if (!tomoyo_dump_page(bprm, pos, dump)) in tomoyo_print_bprm()
261 struct file *file = r->ee->bprm->file; in tomoyo_init_log()
264 bprm_info = tomoyo_print_bprm(r->ee->bprm, &r->ee->dump); in tomoyo_init_log()
281 struct linux_binprm *bprm = r->ee->bprm; in tomoyo_init_log() local
285 realpath, bprm->argc, bprm->envc, bprm_info); in tomoyo_init_log()
Ddomain.c614 struct linux_binprm *bprm = ee->bprm; in tomoyo_environ() local
619 unsigned long pos = bprm->p; in tomoyo_environ()
621 int argv_count = bprm->argc; in tomoyo_environ()
622 int envp_count = bprm->envc; in tomoyo_environ()
635 if (!tomoyo_dump_page(bprm, pos, &env_page)) in tomoyo_environ()
699 int tomoyo_find_next_domain(struct linux_binprm *bprm) in tomoyo_find_next_domain() argument
703 const char *original_name = bprm->filename; in tomoyo_find_next_domain()
720 ee->bprm = bprm; in tomoyo_find_next_domain()
722 ee->obj.path1 = bprm->file->f_path; in tomoyo_find_next_domain()
893 bool tomoyo_dump_page(struct linux_binprm *bprm, unsigned long pos, in tomoyo_dump_page() argument
[all …]
Dcondition.c109 struct linux_binprm *bprm = ee->bprm; in tomoyo_scan_bprm() local
113 unsigned long pos = bprm->p; in tomoyo_scan_bprm()
115 int argv_count = bprm->argc; in tomoyo_scan_bprm()
116 int envp_count = bprm->envc; in tomoyo_scan_bprm()
130 if (!tomoyo_dump_page(bprm, pos, dump)) { in tomoyo_scan_bprm()
160 if (!tomoyo_argv(bprm->argc - argv_count, in tomoyo_scan_bprm()
780 struct linux_binprm *bprm = NULL; in tomoyo_condition() local
789 bprm = r->ee->bprm; in tomoyo_condition()
790 if (!bprm && (argc || envc)) in tomoyo_condition()
826 file = ee ? ee->bprm->file : NULL; in tomoyo_condition()
[all …]
Dtomoyo.c55 static void tomoyo_bprm_committed_creds(struct linux_binprm *bprm) in tomoyo_bprm_committed_creds() argument
72 static int tomoyo_bprm_set_creds(struct linux_binprm *bprm) in tomoyo_bprm_set_creds() argument
78 if (bprm->called_set_creds) in tomoyo_bprm_set_creds()
85 tomoyo_load_policy(bprm->filename); in tomoyo_bprm_set_creds()
97 static int tomoyo_bprm_check_security(struct linux_binprm *bprm) in tomoyo_bprm_check_security() argument
107 const int err = tomoyo_find_next_domain(bprm); in tomoyo_bprm_check_security()
116 &bprm->file->f_path, O_RDONLY); in tomoyo_bprm_check_security()
/Linux-v5.4/arch/arm64/kernel/
Dvdso.c141 struct linux_binprm *bprm, in __setup_additional_pages() argument
355 int aarch32_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) in aarch32_setup_additional_pages() argument
370 bprm, in aarch32_setup_additional_pages()
415 int arch_setup_additional_pages(struct linux_binprm *bprm, in arch_setup_additional_pages() argument
426 bprm, in arch_setup_additional_pages()
/Linux-v5.4/arch/arm64/include/asm/
Delf.h161 extern int arch_setup_additional_pages(struct linux_binprm *bprm,
220 extern int aarch32_setup_additional_pages(struct linux_binprm *bprm,
/Linux-v5.4/arch/x86/entry/vdso/
Dvma.c289 int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) in arch_setup_additional_pages() argument
298 int compat_arch_setup_additional_pages(struct linux_binprm *bprm, in compat_arch_setup_additional_pages() argument
316 int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) in arch_setup_additional_pages() argument
/Linux-v5.4/security/integrity/ima/
Dima_main.c407 int ima_bprm_check(struct linux_binprm *bprm) in ima_bprm_check() argument
413 ret = process_measurement(bprm->file, current_cred(), secid, NULL, 0, in ima_bprm_check()
418 security_cred_getsecid(bprm->cred, &secid); in ima_bprm_check()
419 return process_measurement(bprm->file, bprm->cred, secid, NULL, 0, in ima_bprm_check()
/Linux-v5.4/security/apparmor/include/
Ddomain.h33 int apparmor_bprm_set_creds(struct linux_binprm *bprm);
/Linux-v5.4/arch/riscv/include/asm/
Delf.h68 extern int arch_setup_additional_pages(struct linux_binprm *bprm,

123