summaryrefslogtreecommitdiffstats
path: root/sys/kern/exec_elf.c
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>2012-09-11 15:44:15 +0000
committerderaadt <deraadt@openbsd.org>2012-09-11 15:44:15 +0000
commit2cf794e27eafe5cb030c28554136b425ea5bf780 (patch)
tree7cf026a5ef6c359ae67a6dff806ccae260666d2a /sys/kern/exec_elf.c
parentremove the session entry from the search tree when it's dead. (diff)
downloadwireguard-openbsd-2cf794e27eafe5cb030c28554136b425ea5bf780.tar.xz
wireguard-openbsd-2cf794e27eafe5cb030c28554136b425ea5bf780.zip
Remove the 'OLF method' used for the transition from a.out to ELF and
for all the compat layers which are now gone. Linux compat still works because it always used another method in any case, and nothing looks at p_os anymore. ok jsing
Diffstat (limited to 'sys/kern/exec_elf.c')
-rw-r--r--sys/kern/exec_elf.c28
1 files changed, 7 insertions, 21 deletions
diff --git a/sys/kern/exec_elf.c b/sys/kern/exec_elf.c
index 7cfa7d11ea6..e827787795d 100644
--- a/sys/kern/exec_elf.c
+++ b/sys/kern/exec_elf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: exec_elf.c,v 1.87 2012/08/20 23:25:07 matthew Exp $ */
+/* $OpenBSD: exec_elf.c,v 1.88 2012/09/11 15:44:19 deraadt Exp $ */
/*
* Copyright (c) 1996 Per Fogelstrom
@@ -78,7 +78,6 @@
#include <sys/core.h>
#include <sys/exec.h>
#include <sys/exec_elf.h>
-#include <sys/exec_olf.h>
#include <sys/file.h>
#include <sys/ptrace.h>
#include <sys/syscall.h>
@@ -98,7 +97,7 @@
struct ELFNAME(probe_entry) {
int (*func)(struct proc *, struct exec_package *, char *,
- u_long *, u_int8_t *);
+ u_long *);
} ELFNAME(probes)[] = {
/* XXX - bogus, shouldn't be size independent.. */
#ifdef COMPAT_LINUX
@@ -519,7 +518,6 @@ ELFNAME2(exec,makecmds)(struct proc *p, struct exec_package *epp)
int error, i;
char *interp = NULL;
u_long pos = 0, phsize;
- u_int8_t os = OOS_NULL;
size_t randomizequota = ELF_RANDOMIZE_LIMIT;
if (epp->ep_hdrvalid < sizeof(Elf_Ehdr))
@@ -594,23 +592,12 @@ ELFNAME2(exec,makecmds)(struct proc *p, struct exec_package *epp)
* set the ep_emul field in the exec package structure.
*/
error = ENOEXEC;
- p->p_os = OOS_OPENBSD;
-#ifdef NATIVE_EXEC_ELF
- if (ELFNAME(os_pt_note)(p, epp, epp->ep_hdr, "OpenBSD", 8, 4) == 0) {
- goto native;
- }
-#endif
- for (i = 0; ELFNAME(probes)[i].func != NULL && error; i++) {
- error = (*ELFNAME(probes)[i].func)(p, epp, interp, &pos, &os);
+ if (ELFNAME(os_pt_note)(p, epp, epp->ep_hdr, "OpenBSD", 8, 4) != 0) {
+ for (i = 0; ELFNAME(probes)[i].func != NULL && error; i++)
+ error = (*ELFNAME(probes)[i].func)(p, epp, interp, &pos);
+ if (error)
+ goto bad;
}
- if (!error)
- p->p_os = os;
-#ifndef NATIVE_EXEC_ELF
- else
- goto bad;
-#else
-native:
-#endif /* NATIVE_EXEC_ELF */
/*
* Load all the necessary sections
@@ -760,7 +747,6 @@ native:
ap->arg_phentsize = eh->e_phentsize;
ap->arg_phnum = eh->e_phnum;
ap->arg_entry = eh->e_entry + exe_base;
- ap->arg_os = os;
epp->ep_emul_arg = ap;
epp->ep_interp_pos = pos;