freebsd-skq/sys/compat
Konstantin Belousov 8a15ac8378 Fix execution of linux binary from multithreaded non-Linux process.
If multithreaded non-Linux process execs Linux binary, then non-Linux
threads different from the one that execing are cleared by
single-threading at boundary, and then terminating them in
post_execve(). Since at that time the process is already switched to
linux ABI, linuxolator is involved in the thread clearing on boundary,
but cannot find the emul data.

Handle it by pre-creating emuldata for all threads in the execing process.

Also remove a code in linux_proc_exec() handler that cleared emul data
for other threads when execing from multithreaded Linux process. It is
excessive.

PR:	247020
Reported by:	Martin FIlla <freebsd@sysctl.cz>
Reported by:	Henrique L. Amorim, Independent Security Researcher
Reported by:	Rodrigo Rubira Branco (BSDaemon), Amazon Web Services
Reviewed by:	markj
Tested by:	trasz
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D25293
2020-06-18 20:49:56 +00:00
..
cloudabi cloudabi: use new capsicum helpers 2020-02-15 01:29:58 +00:00
cloudabi32 sysent targets: further cleanup and deduplication 2020-01-18 20:37:45 +00:00
cloudabi64 sysent targets: further cleanup and deduplication 2020-01-18 20:37:45 +00:00
freebsd32 Refactor ptrace() ABI compatibility. 2020-06-09 16:43:23 +00:00
ia32 Retire procfs-based process debugging. 2020-04-01 19:22:09 +00:00
lindebugfs LinuxKPI: Finalize move of lindebugfs from ports to base. 2019-05-19 15:44:21 +00:00
linprocfs fd: move vnodes out of filedesc into a dedicated structure 2020-03-01 21:53:46 +00:00
linsysfs Create a "drm" subdirectory for drm devices in linsysfs. Recent versions of 2019-09-23 12:27:55 +00:00
linux Fix execution of linux binary from multithreaded non-Linux process. 2020-06-18 20:49:56 +00:00
linuxkpi/common Linuxkpi uses the rb-tree structures without using their interfaces, 2020-06-13 01:54:09 +00:00
ndis Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
netbsd sys/compat: further adoption of SPDX licensing ID tags. 2017-11-27 15:13:23 +00:00
x86bios Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00