diff options
Diffstat (limited to 'sys/alpha')
-rw-r--r-- | sys/alpha/linux/linux_sysvec.c | 8 | ||||
-rw-r--r-- | sys/alpha/osf1/imgact_osf1.c | 7 | ||||
-rw-r--r-- | sys/alpha/osf1/osf1_sysvec.c | 8 |
3 files changed, 9 insertions, 14 deletions
diff --git a/sys/alpha/linux/linux_sysvec.c b/sys/alpha/linux/linux_sysvec.c index e3b91eeb2e56..a09dfdcd0abd 100644 --- a/sys/alpha/linux/linux_sysvec.c +++ b/sys/alpha/linux/linux_sysvec.c @@ -97,7 +97,7 @@ elf_linux_fixup(register_t **stack_base, struct image_params *imgp) (curthread->td_proc->p_flag & P_SA) == 0, ("unsafe elf_linux_fixup(), should be curproc")); args = (Elf64_Auxargs *)imgp->auxargs; - pos = *stack_base + (imgp->argc + imgp->envc + 2); + pos = *stack_base + (imgp->args->argc + imgp->args->envc + 2); if (args->trace) AUXARGS_ENTRY(pos, AT_DEBUG, 1); @@ -120,7 +120,7 @@ elf_linux_fixup(register_t **stack_base, struct image_params *imgp) imgp->auxargs = NULL; (*stack_base)--; - **stack_base = (register_t)imgp->argc; + **stack_base = (register_t)imgp->args->argc; return 0; } @@ -154,8 +154,8 @@ exec_linux_imgact_try(imgp) if ((error = exec_shell_imgact(imgp)) == 0) { char *rpath = NULL; - linux_emul_find(FIRST_THREAD_IN_PROC(imgp->proc), NULL, - imgp->interpreter_name, &rpath, 0); + linux_emul_convpath(FIRST_THREAD_IN_PROC(imgp->proc), + imgp->interpreter_name, UIO_SYSSPACE, &rpath, 0); if (rpath != imgp->interpreter_name) { int len = strlen(rpath) + 1; diff --git a/sys/alpha/osf1/imgact_osf1.c b/sys/alpha/osf1/imgact_osf1.c index 40520a0dd792..451896f492c7 100644 --- a/sys/alpha/osf1/imgact_osf1.c +++ b/sys/alpha/osf1/imgact_osf1.c @@ -118,7 +118,7 @@ exec_osf1_imgact(struct image_params *imgp) osf_auxargs = malloc(sizeof(Osf_Auxargs), M_TEMP, M_WAITOK | M_ZERO); imgp->auxargs = osf_auxargs; osf_auxargs->executable = osf_auxargs->exec_path; - path_not_saved = copyinstr(imgp->fname, osf_auxargs->executable, + path_not_saved = copystr(imgp->args->fname, osf_auxargs->executable, PATH_MAX, &bytes); if (execp->f.f_flags & DYNAMIC_FLAG) { if (path_not_saved) { @@ -172,11 +172,6 @@ exec_osf1_imgact(struct image_params *imgp) bsize = eap->bsize; imgp->entry_addr = eap->entry; - /* copy in arguments and/or environment from old process */ - - error = exec_extract_strings(imgp); - if (error) - goto bail; /* * Destroy old process VM and create a new one (with a new stack). diff --git a/sys/alpha/osf1/osf1_sysvec.c b/sys/alpha/osf1/osf1_sysvec.c index 0dea307c9d91..818255368215 100644 --- a/sys/alpha/osf1/osf1_sysvec.c +++ b/sys/alpha/osf1/osf1_sysvec.c @@ -117,15 +117,15 @@ osf1_freebsd_fixup(long **stack_base, struct image_params *imgp) Osf_Auxargs *args; args = (Osf_Auxargs *)imgp->auxargs; - pos = *stack_base + (imgp->argc + imgp->envc + 2); + pos = *stack_base + (imgp->args->argc + imgp->args->envc + 2); arginfo = (struct ps_strings *)PS_STRINGS; sz = *(imgp->proc->p_sysent->sv_szsigcode); destp = (caddr_t)arginfo - szsigcode - SPARE_USRSPACE - - roundup((ARG_MAX - imgp->stringspace), sizeof(char *)); + roundup((ARG_MAX - imgp->args->stringspace), sizeof(char *)); - destp -= imgp->stringspace; + destp -= imgp->args->stringspace; destp -= strlen(args->executable)+2; copyout(args->executable, destp, strlen(args->executable)+1); @@ -143,6 +143,6 @@ osf1_freebsd_fixup(long **stack_base, struct image_params *imgp) free(imgp->auxargs, M_TEMP); imgp->auxargs = NULL; (*stack_base)--; - **stack_base = (long)imgp->argc; + **stack_base = (long)imgp->args->argc; return 0; } |