History log of /openbsd-src/sys/kern/exec_elf.c (Results 51 – 75 of 191)
Revision Date Author Comments
# 01352abe 07-Sep-2017 bluhm <bluhm@openbsd.org>

In elf_load_file() to not call free(9) with an uninitialized size
even if the pointer is NULL. This is not a real bug as free(9)
checks the addr pointer before the size value, but the compiler
canno

In elf_load_file() to not call free(9) with an uninitialized size
even if the pointer is NULL. This is not a real bug as free(9)
checks the addr pointer before the size value, but the compiler
cannot know that.
found by clang -Wuninitialized; OK deraadt@

show more ...


# 1443c537 20-Mar-2017 kettenis <kettenis@openbsd.org>

Initialize the stack buffer used to build the auxiliary vector to zero to
avoid leaking the contents of the kernel stack into userspace.

ok guenther@, deraadt@


# 17448fe7 05-Mar-2017 guenther <guenther@openbsd.org>

Generating a coredump requires walking the map twice; change
uvm_coredump_walkmap() to do both with a callback in between
so it can hold locks/change state across the two.

ok stefan@


# a7c026e4 11-Feb-2017 guenther <guenther@openbsd.org>

Correct the entry point and base address calculations for an
interpreter whose entry point isn't in its first PT_LOAD segment.

problem report and testing by patrick@


# b0cba403 08-Feb-2017 guenther <guenther@openbsd.org>

Remove support for forcing the ELF interpreter to a specific address,
last used by COMPAT_SYSV which was removed in 2011.

ok millert@


# 043da685 08-Feb-2017 guenther <guenther@openbsd.org>

In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except
leaving out the size, so that
ELFNAME2(exec,makecmds)
becomes
exec_elf_makecmds
instead of
exec_elf{32,64}_makecmds
and then de

In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except
leaving out the size, so that
ELFNAME2(exec,makecmds)
becomes
exec_elf_makecmds
instead of
exec_elf{32,64}_makecmds
and then delete the ELFNAME2() and ELFNAMEEND() macros.

Move the prototypes for functions local to exec_elf.c to there from
exec_elf.h.

Simplify the SMALL_KERNEL conditionals around the ELF coredump code.

Change exec_conf.c to use the size-generic names and macros

Remove exec_elf{32,64}.c and just build exec_elf.c; delete the
_KERN_DO_ELF and _KERN_DO_ELF64 #defines.

ok jca@, encouragement from deraadt@ and tom@

show more ...


# 41d803c5 08-Feb-2017 guenther <guenther@openbsd.org>

Move ELF_AUX_ENTRIES from exec_elf.h to exec_elf.c; it's totally internal
and not something we guarantee to userspace

ok jca@


# 6255499b 08-Feb-2017 guenther <guenther@openbsd.org>

Change ELFNAME(read_from)'s buf parameter to be void*, eliminating a cast
from all but one call

ok jca@


# 1809cfc6 08-Feb-2017 guenther <guenther@openbsd.org>

elf{32,64}_check_brand() isn't used; delete it

ok jca@


# de10163a 08-Feb-2017 guenther <guenther@openbsd.org>

Provide size-generic ELF_NO_ADDR in <sys/exec_elf.h> and use that instead
of ELFDEFNNAME(NO_ADDR)

ok jca@


# 48e470c3 05-Feb-2017 guenther <guenther@openbsd.org>

Since we expect to never do binary compat with other OSes again,
delete the no-longer-used probe hook support.

ok mpi@ jca@


# 8fda72b7 21-Jan-2017 guenther <guenther@openbsd.org>

p_comm is the process's command and isn't per thread, so move it from
struct proc to struct process.

ok deraadt@ kettenis@


# 3b7181b7 07-Nov-2016 guenther <guenther@openbsd.org>

Split PID from TID, giving processes a PID unrelated to the TID of their
initial thread

ok jsing@ kettenis@


# 2b712bfe 05-Oct-2016 guenther <guenther@openbsd.org>

Display/test/use the process PID, not the thread's TID, in a few places.

ok mpi@ mikeb@


# 05b24c4d 12-Sep-2016 schwarze <schwarze@openbsd.org>

When trying to run an ELF binary marked PT_OPENBSD_WXNEEDED from a
file system mounted without MNT_WXALLOWED, fail with EACCES rather
than with ENOEXEC, to discourage the shell from trying to run the

When trying to run an ELF binary marked PT_OPENBSD_WXNEEDED from a
file system mounted without MNT_WXALLOWED, fail with EACCES rather
than with ENOEXEC, to discourage the shell from trying to run the
file as a shell script.
OK deraadt@ millert@; tedu@ and halex@ agreed with the general direction.

show more ...


# 1c2a6c81 11-Jun-2016 kettenis <kettenis@openbsd.org>

Since epp->ep_name is a userland pointer, use copyinstr(9) to get a copy ok
the string into kernel space before logging the W^X binary warning.

ok jca@, guenther@


# 205b954d 08-Jun-2016 kettenis <kettenis@openbsd.org>

Enforce W^X and map W|X segments without X permission initially. The
dynamic linker will make these read-only and add back X permission after
elocation processing. Static executables with W|X segme

Enforce W^X and map W|X segments without X permission initially. The
dynamic linker will make these read-only and add back X permission after
elocation processing. Static executables with W|X segments will probably
crash.

ok deraadt@, guenther@

show more ...


# f68ce565 30-May-2016 deraadt <deraadt@openbsd.org>

Identify W^X labelled binaries at execve() time based upon WX_OPENBSD_WXNEEDED
flag set by ld -zwxneeded. Such binaries are allowed to run only on wxallowed
mountpoints. They do not report mmap/mpr

Identify W^X labelled binaries at execve() time based upon WX_OPENBSD_WXNEEDED
flag set by ld -zwxneeded. Such binaries are allowed to run only on wxallowed
mountpoints. They do not report mmap/mprotect problems.

Rate limit mmap/mprotect reports from other binaries.

These semantics are chosen to encourage progress in the ports ecosystem,
without overwhelming the developers who work in the area.
ok sthen kettenis

show more ...


# 12b62665 30-May-2016 deraadt <deraadt@openbsd.org>

backout to insert correct commit message


# e31974b4 30-May-2016 deraadt <deraadt@openbsd.org>

*** empty log message ***


# 7730d1d9 10-May-2016 deraadt <deraadt@openbsd.org>

SROP mitigation. sendsig() stores a (per-process ^ &sigcontext) cookie
inside the sigcontext. sigreturn(2) checks syscall entry was from the
exact PC addr in the (per-process ASLR) sigtramp, verifi

SROP mitigation. sendsig() stores a (per-process ^ &sigcontext) cookie
inside the sigcontext. sigreturn(2) checks syscall entry was from the
exact PC addr in the (per-process ASLR) sigtramp, verifies the cookie,
and clears it to prevent sigcontext reuse.
not yet tested on landisk, sparc, *88k, socppc.
ok kettenis

show more ...


# 2dc555cb 28-Feb-2016 naddy <naddy@openbsd.org>

Support for running Linux binaries under emulation is going away.

Remove "option COMPAT_LINUX" and everything directly tied to it from the
kernel and the corresponding man page documentation.

ok vi

Support for running Linux binaries under emulation is going away.

Remove "option COMPAT_LINUX" and everything directly tied to it from the
kernel and the corresponding man page documentation.

ok visa@ guenther@

show more ...


# 345a92b4 02-Nov-2015 semarie <semarie@openbsd.org>

move the pledgenote annotation from `struct proc' to `struct nameidata'

pledgenote is used for annotate the policy for a namei context. So make it
tracking the nameidata.

It is expected for the cal

move the pledgenote annotation from `struct proc' to `struct nameidata'

pledgenote is used for annotate the policy for a namei context. So make it
tracking the nameidata.

It is expected for the caller to explicitly define the policy. It is a kernel
bug to not do so.

ok deraadt@

show more ...


# 113dcb2d 28-Oct-2015 deraadt <deraadt@openbsd.org>

Paranoa: p_pledgenote the NAMEI for ld.so loading


# 7da957a5 28-Sep-2015 deraadt <deraadt@openbsd.org>

Track size of an opaque allocation to pass to free() later
ok guenther tedu


12345678