Lines Matching refs:imgp

222 static int exec_activate_image(struct image_params *imgp);
223 static int exec_copyout_strings(struct image_params *imgp, user_addr_t *stackp);
225 static int execargs_alloc(struct image_params *imgp);
226 static int execargs_free(struct image_params *imgp);
227 static int exec_check_permissions(struct image_params *imgp);
228 static int exec_extract_strings(struct image_params *imgp);
229 static int exec_add_apple_strings(struct image_params *imgp);
230 static int exec_handle_sugid(struct image_params *imgp);
273 * (imgp->ip_strendp) updated location of next add, if any
274 * (imgp->ip_strspace) updated byte count of space remaining
275 * (imgp->ip_argspace) updated byte count of space in NCARGS
278 exec_add_user_string(struct image_params *imgp, user_addr_t str, int seg, boolean_t is_ncargs)
287 space = imgp->ip_argspace; /* by definition smaller than ip_strspace */
289 space = imgp->ip_strspace;
298 error = copystr(kstr, imgp->ip_strendp, space, &len);
300 error = copyinstr(str, imgp->ip_strendp, space, &len);
303 imgp->ip_strendp += len;
304 imgp->ip_strspace -= len;
306 imgp->ip_argspace -= len;
334 * (imgp->ip_strings) saved path
335 * (imgp->ip_strspace) space remaining in ip_strings
336 * (imgp->ip_strendp) start of remaining copy area
337 * (imgp->ip_argspace) space remaining of NCARGS
338 * (imgp->ip_applec) Initial applev[0]
348 exec_save_path(struct image_params *imgp, user_addr_t path, int seg)
354 len = MIN(MAXPATHLEN, imgp->ip_strspace);
359 error = copyinstr(path, imgp->ip_strings, len, &len);
363 error = copystr(kpath, imgp->ip_strings, len, &len);
371 imgp->ip_strendp += len;
372 imgp->ip_strspace -= len;
389 * (imgp->ip_strings) saved path
390 * (imgp->ip_strspace) space remaining in ip_strings
391 * (imgp->ip_strendp) start of remaining copy area
392 * (imgp->ip_argspace) space remaining of NCARGS
396 exec_reset_save_path(struct image_params *imgp)
398 imgp->ip_strendp = imgp->ip_strings;
399 imgp->ip_argspace = NCARGS;
400 imgp->ip_strspace = ( NCARGS + PAGE_SIZE );
427 exec_shell_imgact(struct image_params *imgp)
429 char *vdata = imgp->ip_vdata;
448 (imgp->ip_flags & IMGPF_INTERPRET) != 0) {
452 imgp->ip_flags |= IMGPF_INTERPRET;
453 imgp->ip_interp_sugid_fd = -1;
454 imgp->ip_interp_buffer[0] = '\0';
458 * imgp->ip_vattr is known to be valid.
461 imgp->ip_origvattr->va_mode &= ~(VSUID | VSGID);
515 interp = imgp->ip_interp_buffer;
520 exec_reset_save_path(imgp);
521 exec_save_path(imgp, CAST_USER_ADDR_T(imgp->ip_interp_buffer),
525 interp = imgp->ip_interp_buffer;
535 if (imgp->ip_origvattr->va_mode & (VSUID | VSGID)) {
536 p = vfs_context_proc(imgp->ip_vfs_context);
537 error = falloc(p, &fp, &fd, imgp->ip_vfs_context);
544 fp->f_fglob->fg_data = (caddr_t)imgp->ip_vp;
550 vnode_ref(imgp->ip_vp);
552 imgp->ip_interp_sugid_fd = fd;
587 exec_fat_imgact(struct image_params *imgp)
589 proc_t p = vfs_context_proc(imgp->ip_vfs_context);
591 struct fat_header *fat_header = (struct fat_header *)imgp->ip_vdata;
605 psa = (struct _posix_spawnattr *) imgp->ip_px_sa;
648 lret = fatfile_getarch_affinity(imgp->ip_vp,
659 error = vn_rdwr(UIO_READ, imgp->ip_vp, imgp->ip_vdata,
675 imgp->ip_arch_offset = (user_size_t)fat_arch.offset;
676 imgp->ip_arch_size = (user_size_t)fat_arch.size;
707 exec_mach_imgact(struct image_params *imgp)
709 struct mach_header *mach_header = (struct mach_header *)imgp->ip_vdata;
710 proc_t p = vfs_context_proc(imgp->ip_vfs_context);
722 int spawn = (imgp->ip_flags & IMGPF_SPAWN);
750 if (!imgp->ip_origcputype) {
751 imgp->ip_origcputype = mach_header->cputype;
752 imgp->ip_origcpusubtype = mach_header->cpusubtype;
769 imgp->ip_flags |= IMGPF_IS_64BIT;
772 psa = (struct _posix_spawnattr *) imgp->ip_px_sa;
788 if (pref == imgp->ip_origcputype) {
797 if (!grade_binary(imgp->ip_origcputype & ~CPU_SUBTYPE_LIB64,
798 imgp->ip_origcpusubtype & ~CPU_SUBTYPE_MASK)) {
804 error = exec_extract_strings(imgp);
808 error = exec_add_apple_strings(imgp);
812 AUDIT_ARG(argv, imgp->ip_startargv, imgp->ip_argc,
813 imgp->ip_endargv - imgp->ip_startargv);
814 AUDIT_ARG(envv, imgp->ip_endargv, imgp->ip_envc,
815 imgp->ip_endenvv - imgp->ip_endargv);
826 imgp->ip_new_thread = fork_create_child(task, p, FALSE, (imgp->ip_flags & IMGPF_IS_64BIT));
827 if (imgp->ip_new_thread == NULL) {
834 thread = imgp->ip_new_thread;
847 if (imgp->ip_flags & IMGPF_IS_64BIT) {
866 lret = load_machfile(imgp, mach_header, thread, map, &load_result);
880 imgp->ip_csflags |= load_result.csflags &
884 imgp->ip_csflags &= ~CS_VALID;
888 imgp->ip_csflags |= CS_HARD;
890 imgp->ip_csflags |= CS_KILL;
909 error = exec_handle_sugid(imgp);
939 error = exec_copyout_strings(imgp, &ap);
951 int new_ptr_size = (imgp->ip_flags & IMGPF_IS_64BIT) ? 8 : 4;
972 exec_prefault_data(p, imgp, &load_result);
1013 if (0 != imgp->ip_p_comm[0]) {
1014 bcopy((caddr_t)imgp->ip_p_comm, (caddr_t)p->p_comm,
1017 if (imgp->ip_ndp->ni_cnd.cn_namelen > MAXCOMLEN)
1018 imgp->ip_ndp->ni_cnd.cn_namelen = MAXCOMLEN;
1019 bcopy((caddr_t)imgp->ip_ndp->ni_cnd.cn_nameptr, (caddr_t)p->p_comm,
1020 (unsigned)imgp->ip_ndp->ni_cnd.cn_namelen);
1021 p->p_comm[imgp->ip_ndp->ni_cnd.cn_namelen] = '\0';
1118 if (imgp->ip_px_sa != NULL) {
1119 psa = (struct _posix_spawnattr *) imgp->ip_px_sa;
1136 proc_set_task_apptype(p->task, apptype, imgp->ip_new_thread);
1143 proc_set_task_apptype(p->task, apptype, imgp->ip_new_thread);
1167 proc_set_task_apptype(p->task, apptype, imgp->ip_new_thread);
1239 * the image associated with the imgp structure. We start with
1261 exec_activate_image(struct image_params *imgp)
1269 proc_t p = vfs_context_proc(imgp->ip_vfs_context);
1271 error = execargs_alloc(imgp);
1275 error = exec_save_path(imgp, imgp->ip_user_fname, imgp->ip_seg);
1280 /* Use imgp->ip_strings, which contains the copyin-ed exec path */
1281 DTRACE_PROC1(exec, uintptr_t, imgp->ip_strings);
1284 UIO_SYSSPACE, CAST_USER_ADDR_T(imgp->ip_strings), imgp->ip_vfs_context);
1289 imgp->ip_ndp = &nd; /* successful namei(); call nameidone() later */
1290 imgp->ip_vp = nd.ni_vp; /* if set, need to vnode_put() at some point */
1309 error = exec_check_permissions(imgp);
1316 *imgp->ip_origvattr = *imgp->ip_vattr;
1319 error = vn_rdwr(UIO_READ, imgp->ip_vp, imgp->ip_vdata, PAGE_SIZE, 0,
1321 vfs_context_ucred(imgp->ip_vfs_context),
1322 &resid, vfs_context_proc(imgp->ip_vfs_context));
1335 error = (*execsw[i].ex_imgact)(imgp);
1349 if (imgp->ip_scriptlabelp)
1350 mac_vnode_label_free(imgp->ip_scriptlabelp);
1351 imgp->ip_scriptlabelp = mac_vnode_label_alloc();
1352 if (imgp->ip_scriptlabelp == NULL) {
1356 mac_vnode_label_copy(imgp->ip_vp->v_label,
1357 imgp->ip_scriptlabelp);
1362 vnode_put(imgp->ip_vp);
1363 imgp->ip_vp = NULL; /* already put */
1364 imgp->ip_ndp = NULL; /* already nameidone */
1366 /* Use imgp->ip_strings, which exec_shell_imgact reset to the interpreter */
1368 UIO_SYSSPACE, CAST_USER_ADDR_T(imgp->ip_strings), imgp->ip_vfs_context);
1383 kauth_authorize_fileop(vfs_context_ucred(imgp->ip_vfs_context),
1392 if (imgp->ip_strings)
1393 execargs_free(imgp);
1394 if (imgp->ip_ndp)
1395 nameidone(imgp->ip_ndp);
1415 exec_handle_port_actions(struct image_params *imgp, short psa_flags)
1417 _posix_spawn_port_actions_t pacts = imgp->ip_px_spa;
1418 proc_t p = vfs_context_proc(imgp->ip_vfs_context);
1492 exec_handle_file_actions(struct image_params *imgp, short psa_flags)
1496 proc_t p = vfs_context_proc(imgp->ip_vfs_context);
1497 _posix_spawn_file_actions_t px_sfap = imgp->ip_px_sfa;
1527 imgp->ip_vfs_context);
1529 error = open1(imgp->ip_vfs_context,
1697 struct image_params *imgp;
1718 MALLOC(bufp, char *, (sizeof(*imgp) + sizeof(*vap) + sizeof(*origvap)), M_TEMP, M_WAITOK | M_ZERO);
1719 imgp = (struct image_params *) bufp;
1724 vap = (struct vnode_attr *) (bufp + sizeof(*imgp));
1725 origvap = (struct vnode_attr *) (bufp + sizeof(*imgp) + sizeof(*vap));
1728 imgp->ip_user_fname = uap->path;
1729 imgp->ip_user_argv = uap->argv;
1730 imgp->ip_user_envv = uap->envp;
1731 imgp->ip_vattr = vap;
1732 imgp->ip_origvattr = origvap;
1733 imgp->ip_vfs_context = &context;
1734 imgp->ip_flags = (is_64 ? IMGPF_WAS_64BIT : IMGPF_NONE);
1735 imgp->ip_p_comm = alt_p_comm; /* for PowerPC */
1736 imgp->ip_seg = (is_64 ? UIO_USERSPACE64 : UIO_USERSPACE32);
1768 imgp->ip_px_sa = &px_sa;
1783 imgp->ip_px_sfa = px_sfap;
1803 imgp->ip_px_spa = px_spap;
1831 if (imgp->ip_px_sa == NULL || !(px_sa.psa_flags & POSIX_SPAWN_SETEXEC)){
1832 if ((error = fork1(p, &imgp->ip_new_thread, PROC_CREATE_SPAWN)) != 0)
1834 imgp->ip_flags |= IMGPF_SPAWN; /* spawn w/o exec */
1839 p = (proc_t)get_bsdthreadtask_info(imgp->ip_new_thread);
1851 context.vc_thread = imgp->ip_new_thread;
1861 if (imgp->ip_px_sfa != NULL) {
1866 if ((error = exec_handle_file_actions(imgp,
1867 imgp->ip_px_sa != NULL ? px_sa.psa_flags : 0)) != 0)
1872 if (imgp->ip_px_spa != NULL) {
1877 if ((error = exec_handle_port_actions(imgp,
1878 imgp->ip_px_sa != NULL ? px_sa.psa_flags : 0)) != 0)
1883 if (imgp->ip_px_sa != NULL) {
1934 imgp->ip_flags |= IMGPF_ALLOW_DATA_EXEC;
1943 imgp->ip_flags |= IMGPF_DISABLE_ASLR;
1958 error = mac_execve_enter(uap->mac_p, imgp);
1967 error = exec_activate_image(imgp);
1986 if (!error && imgp->ip_px_sa != NULL) {
1996 child_thread = imgp->ip_new_thread;
2049 if (imgp->ip_px_sa != NULL) {
2070 exec_resettextvp(p, imgp);
2074 if (imgp->ip_px_sa != NULL) {
2114 error = check_for_signature(p, imgp);
2120 if (imgp != NULL && spawn_no_exec && (p->p_lflag & P_LTRACED)) {
2121 psignal_vfork(p, p->task, imgp->ip_new_thread, SIGTRAP);
2126 if (imgp != NULL) {
2127 if (imgp->ip_vp)
2128 vnode_put(imgp->ip_vp);
2129 if (imgp->ip_strings)
2130 execargs_free(imgp);
2131 if (imgp->ip_px_sfa != NULL)
2132 FREE(imgp->ip_px_sfa, M_TEMP);
2133 if (imgp->ip_px_spa != NULL)
2134 FREE(imgp->ip_px_spa, M_TEMP);
2137 if (imgp->ip_execlabelp)
2138 mac_cred_label_free(imgp->ip_execlabelp);
2139 if (imgp->ip_scriptlabelp)
2140 mac_vnode_label_free(imgp->ip_scriptlabelp);
2151 if (imgp != NULL && imgp->ip_flags & IMGPF_SPAWN) {
2164 if (imgp != NULL && imgp->ip_flags & IMGPF_SPAWN) {
2173 if (imgp != NULL && spawn_no_exec) {
2196 task_deallocate(get_threadtask(imgp->ip_new_thread));
2197 thread_deallocate(imgp->ip_new_thread);
2214 (void)thread_resume(imgp->ip_new_thread);
2292 struct image_params *imgp;
2306 MALLOC(bufp, char *, (sizeof(*imgp) + sizeof(*vap) + sizeof(*origvap)), M_TEMP, M_WAITOK | M_ZERO);
2307 imgp = (struct image_params *) bufp;
2312 vap = (struct vnode_attr *) (bufp + sizeof(*imgp));
2313 origvap = (struct vnode_attr *) (bufp + sizeof(*imgp) + sizeof(*vap));
2316 imgp->ip_user_fname = uap->fname;
2317 imgp->ip_user_argv = uap->argp;
2318 imgp->ip_user_envv = uap->envp;
2319 imgp->ip_vattr = vap;
2320 imgp->ip_origvattr = origvap;
2321 imgp->ip_vfs_context = &context;
2322 imgp->ip_flags = (is_64 ? IMGPF_WAS_64BIT : IMGPF_NONE) | ((p->p_flag & P_DISABLE_ASLR) ? IMGPF_DISABLE_ASLR : IMGPF_NONE);
2323 imgp->ip_p_comm = alt_p_comm; /* for PowerPC */
2324 imgp->ip_seg = (is_64 ? UIO_USERSPACE64 : UIO_USERSPACE32);
2328 error = mac_execve_enter(uap->mac_p, imgp);
2336 error = exec_activate_image(imgp);
2345 exec_resettextvp(p, imgp);
2346 error = check_for_signature(p, imgp);
2348 if (imgp->ip_vp != NULLVP)
2349 vnode_put(imgp->ip_vp);
2350 if (imgp->ip_strings)
2351 execargs_free(imgp);
2353 if (imgp->ip_execlabelp)
2354 mac_cred_label_free(imgp->ip_execlabelp);
2355 if (imgp->ip_scriptlabelp)
2356 mac_vnode_label_free(imgp->ip_scriptlabelp);
2368 (void)thread_resume(imgp->ip_new_thread);
2523 exec_copyout_strings(struct image_params *imgp, user_addr_t *stackp)
2525 proc_t p = vfs_context_proc(imgp->ip_vfs_context);
2526 int ptr_size = (imgp->ip_flags & IMGPF_IS_64BIT) ? 8 : 4;
2547 .start_string = imgp->ip_startargv,
2548 .count = imgp->ip_argc,
2555 .start_string = imgp->ip_endargv,
2556 .count = imgp->ip_envc,
2563 .start_string = imgp->ip_strings,
2571 .start_string = imgp->ip_endenvv,
2572 .count = imgp->ip_applec - 1, /* exec_path handled above */
2586 if (imgp->ip_strspace % ptr_size != 0) {
2592 string_size = imgp->ip_strendp - imgp->ip_strings;
2600 ptr_area_size = (imgp->ip_argc + imgp->ip_envc + imgp->ip_applec + 3) *
2609 ptr_buffer_start = ptr_buffer = (void *)imgp->ip_strendp;
2622 p->p_argc = imgp->ip_argc;
2632 error = copyout(imgp->ip_strings, string_area,
2654 user_addr_t cur_address = string_area + (cur_string - imgp->ip_strings);
2687 error = copyoutptr((user_addr_t)imgp->ip_argc, argc_area, ptr_size);
2714 * (imgp->ip_argc) Count of arguments, updated
2715 * (imgp->ip_envc) Count of environment strings, updated
2716 * (imgp->ip_argspace) Count of remaining of NCARGS
2717 * (imgp->ip_interp_buffer) Interpreter and args (mutated in place)
2724 exec_extract_strings(struct image_params *imgp)
2727 int ptr_size = (imgp->ip_flags & IMGPF_WAS_64BIT) ? 8 : 4;
2728 int new_ptr_size = (imgp->ip_flags & IMGPF_IS_64BIT) ? 8 : 4;
2729 user_addr_t argv = imgp->ip_user_argv;
2730 user_addr_t envv = imgp->ip_user_envv;
2737 while (imgp->ip_strspace % new_ptr_size != 0) {
2738 *imgp->ip_strendp++ = '\0';
2739 imgp->ip_strspace--;
2740 /* imgp->ip_argspace--; not counted towards exec args total */
2746 imgp->ip_startargv = imgp->ip_strendp;
2747 imgp->ip_argc = 0;
2749 if((imgp->ip_flags & IMGPF_INTERPRET) != 0) {
2754 argstart = imgp->ip_interp_buffer;
2763 error = exec_add_user_string(imgp, CAST_USER_ADDR_T(argstart), UIO_SYSSPACE, TRUE);
2768 error = exec_add_user_string(imgp, CAST_USER_ADDR_T(argstart), UIO_SYSSPACE, TRUE);
2783 if (imgp->ip_argspace < new_ptr_size) {
2787 imgp->ip_argspace -= new_ptr_size; /* to hold argv[] entry */
2788 imgp->ip_argc++;
2806 if (imgp->ip_interp_sugid_fd != -1) {
2808 snprintf(temp, sizeof(temp), "/dev/fd/%d", imgp->ip_interp_sugid_fd);
2809 error = exec_add_user_string(imgp, CAST_USER_ADDR_T(temp), UIO_SYSSPACE, TRUE);
2811 error = exec_add_user_string(imgp, imgp->ip_user_fname, imgp->ip_seg, TRUE);
2816 if (imgp->ip_argspace < new_ptr_size) {
2820 imgp->ip_argspace -= new_ptr_size; /* to hold argv[] entry */
2821 imgp->ip_argc++;
2840 error = exec_add_user_string(imgp, arg, imgp->ip_seg, TRUE);
2843 if (imgp->ip_argspace < new_ptr_size) {
2847 imgp->ip_argspace -= new_ptr_size; /* to hold argv[] entry */
2848 imgp->ip_argc++;
2852 if (imgp->ip_argspace < new_ptr_size) {
2856 imgp->ip_argspace -= new_ptr_size;
2859 imgp->ip_endargv = imgp->ip_strendp;
2860 imgp->ip_envc = 0;
2877 error = exec_add_user_string(imgp, env, imgp->ip_seg, TRUE);
2880 if (imgp->ip_argspace < new_ptr_size) {
2884 imgp->ip_argspace -= new_ptr_size; /* to hold envv[] entry */
2885 imgp->ip_envc++;
2889 if (imgp->ip_argspace < new_ptr_size) {
2893 imgp->ip_argspace -= new_ptr_size;
2896 while (imgp->ip_strspace % new_ptr_size != 0) {
2897 if (imgp->ip_argspace < 1) {
2901 *imgp->ip_strendp++ = '\0';
2902 imgp->ip_strspace--;
2903 imgp->ip_argspace--;
2907 imgp->ip_endenvv = imgp->ip_strendp;
2973 exec_add_apple_strings(struct image_params *imgp)
2985 if( imgp->ip_flags & IMGPF_IS_64BIT) {
2993 imgp->ip_applec = 1;
2996 error = exec_add_user_string(imgp, CAST_USER_ADDR_T(pfz_string),UIO_SYSSPACE,FALSE);
2999 imgp->ip_applec++;
3013 error = exec_add_user_string(imgp, CAST_USER_ADDR_T(guard_vec), UIO_SYSSPACE, FALSE);
3016 imgp->ip_applec++;
3029 error = exec_add_user_string(imgp, CAST_USER_ADDR_T(entropy_vec), UIO_SYSSPACE, FALSE);
3032 imgp->ip_applec++;
3035 while (imgp->ip_strspace % new_ptr_size != 0) {
3036 *imgp->ip_strendp++ = '\0';
3037 imgp->ip_strspace--;
3063 exec_check_permissions(struct image_params *imgp)
3065 struct vnode *vp = imgp->ip_vp;
3066 struct vnode_attr *vap = imgp->ip_vattr;
3067 proc_t p = vfs_context_proc(imgp->ip_vfs_context);
3083 if ((error = vnode_getattr(vp, vap, imgp->ip_vfs_context)) != 0)
3098 imgp->ip_arch_offset = (user_size_t)0;
3099 imgp->ip_arch_size = vap->va_data_size;
3106 error = mac_vnode_check_exec(imgp->ip_vfs_context, vp, imgp);
3116 if ((error = vnode_authorize(vp, NULL, action, imgp->ip_vfs_context)) != 0)
3164 exec_handle_sugid(struct image_params *imgp)
3166 kauth_cred_t cred = vfs_context_ucred(imgp->ip_vfs_context);
3167 proc_t p = vfs_context_proc(imgp->ip_vfs_context);
3184 imgp->ip_vfs_context,
3185 imgp->ip_vp,
3186 imgp->ip_scriptlabelp,
3187 imgp->ip_execlabelp, p);
3206 if (((imgp->ip_origvattr->va_mode & VSUID) != 0 &&
3207 kauth_cred_getuid(cred) != imgp->ip_origvattr->va_uid) ||
3208 ((imgp->ip_origvattr->va_mode & VSGID) != 0 &&
3209 ((kauth_cred_ismember_gid(cred, imgp->ip_origvattr->va_gid, &leave_sugid_clear) || !leave_sugid_clear) ||
3210 (kauth_cred_getgid(cred) != imgp->ip_origvattr->va_gid)))) {
3233 if (imgp->ip_origvattr->va_mode & VSUID) {
3234 p->p_ucred = kauth_cred_setresuid(p->p_ucred, KAUTH_UID_NONE, imgp->ip_origvattr->va_uid, imgp->ip_origvattr->va_uid, KAUTH_UID_NONE);
3238 if (imgp->ip_origvattr->va_mode & VSGID) {
3239 p->p_ucred = kauth_cred_setresgid(p->p_ucred, KAUTH_GID_NONE, imgp->ip_origvattr->va_gid, imgp->ip_origvattr->va_gid);
3254 imgp->ip_vfs_context,
3255 imgp->ip_vp,
3256 imgp->ip_scriptlabelp,
3257 imgp->ip_execlabelp)) {
3283 ipc_thread_reset((imgp->ip_new_thread != NULL) ?
3284 imgp->ip_new_thread : current_thread());
3321 &fp, &indx, imgp->ip_vfs_context)) != 0)
3328 imgp->ip_vfs_context);
3706 execargs_alloc(struct image_params *imgp)
3725 imgp->ip_strings = (char *)(execargs_cache[i]);
3736 kret = execargs_purgeable_allocate(&imgp->ip_strings);
3739 kret = execargs_purgeable_reference(imgp->ip_strings);
3747 imgp->ip_vdata = imgp->ip_strings + ( NCARGS + PAGE_SIZE );
3748 imgp->ip_strendp = imgp->ip_strings;
3749 imgp->ip_argspace = NCARGS;
3750 imgp->ip_strspace = ( NCARGS + PAGE_SIZE );
3769 execargs_free(struct image_params *imgp)
3775 kret = execargs_purgeable_volatilize(imgp->ip_strings);
3783 execargs_cache[i] = (vm_offset_t) imgp->ip_strings;
3784 imgp->ip_strings = NULL;
3789 assert(imgp->ip_strings == NULL);
3803 exec_resettextvp(proc_t p, struct image_params *imgp)
3810 vp = imgp->ip_vp;
3811 offset = imgp->ip_arch_offset;
3837 check_for_signature(proc_t p, struct image_params *imgp)
3852 p->p_csflags = imgp->ip_csflags;
3923 static void exec_prefault_data(proc_t p __unused, struct image_params *imgp, load_result_t *load_result)
3937 if (imgp->ip_flags & IMGPF_IS_64BIT) {
3981 if (imgp->ip_flags & IMGPF_IS_64BIT) {