freebsd-dev/sys
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
..
amd64 Control for Special Register Buffer Data Sampling mitigation. 2020-06-12 22:14:45 +00:00
arm Simplify MACHINE_ARCH to be a single string. 2020-06-15 18:57:43 +00:00
arm64 Support pmap_extract_and_hold on arm64 stage 2 mappings 2020-06-17 19:45:05 +00:00
bsm bsm: add AUE_CLOSERANGE 2020-04-24 01:27:25 +00:00
cam Implement zero-copy iSCSI target transmission/read. 2020-06-08 20:53:57 +00:00
cddl Fix export_args ex_flags field so that is 64bits, the same as mnt_flags. 2020-06-14 00:10:18 +00:00
compat Fix execution of linux binary from multithreaded non-Linux process. 2020-06-18 20:49:56 +00:00
conf Add the SCTP_SUPPORT kernel option. 2020-06-18 19:32:34 +00:00
contrib Document upgrade procedure in FREEBSD-upgrade 2020-06-04 20:48:57 +00:00
crypto Fix AES-CCM requests with an AAD size smaller than a single block. 2020-06-12 21:33:02 +00:00
ddb kernel: provide panicky version of __unreachable 2020-05-13 18:07:37 +00:00
dev Make polled request timeout less invasive. 2020-06-18 19:16:03 +00:00
dts Remove licenses 2020-06-04 17:20:58 +00:00
fs Remove vfs_statfs and vnode_mount macros from NFS 2020-06-17 16:20:19 +00:00
gdb Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
geom Add a crypto capability flag for accelerated software drivers. 2020-06-09 22:26:07 +00:00
gnu dts: patch the am33xx dts for upcoming clock support 2020-06-05 20:14:54 +00:00
i386 FPU init: allocate initial state from UMA to ensure alignment 2020-06-12 21:17:56 +00:00
isa sc(4) md bits: stop setting sc->kbd entirely 2019-12-30 02:07:55 +00:00
kern Add the SCTP_SUPPORT kernel option. 2020-06-18 19:32:34 +00:00
kgssapi Add support for optional separate output buffers to in-kernel crypto. 2020-05-25 22:12:04 +00:00
libkern libkern: Add arc4random_uniform 2020-05-23 17:51:06 +00:00
mips Various fixes to TLS for MIPS. 2020-06-12 21:21:18 +00:00
modules Hard-code the ice_ddp firmware version. 2020-06-11 00:36:35 +00:00
net iflib: netmap: enter/exit netmap mode after device stops 2020-06-14 21:07:12 +00:00
net80211 [net80211] Add missing commit to previous-1 uapsd commit. 2020-06-16 00:28:45 +00:00
netgraph Update event masks constant to Bluetooth core spec V5.2 2020-06-15 14:58:40 +00:00
netinet Add the SCTP_SUPPORT kernel option. 2020-06-18 19:32:34 +00:00
netinet6 Add the SCTP_SUPPORT kernel option. 2020-06-18 19:32:34 +00:00
netipsec Add the SCTP_SUPPORT kernel option. 2020-06-18 19:32:34 +00:00
netpfil Add the SCTP_SUPPORT kernel option. 2020-06-18 19:32:34 +00:00
netsmb Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
nfs Use epoch(9) for rtentries to simplify control plane operations. 2020-05-23 10:21:02 +00:00
nfsclient
nfsserver
nlm Fix export_args ex_flags field so that is 64bits, the same as mnt_flags. 2020-06-14 00:10:18 +00:00
ofed Convert OFED rtable interactions to the new routing KPI. 2020-04-15 13:06:55 +00:00
opencrypto Various optimizations to software AES-CCM and AES-GCM. 2020-06-12 23:10:30 +00:00
powerpc powerpc/pmap: Fix pte_find_next() iterators for booke64 pmap 2020-06-10 23:03:35 +00:00
riscv riscv: Use SBI shutdown call to implement RB_POWEROFF 2020-06-08 17:57:21 +00:00
rpc Add the .h file that describes the operations for the rpctls_syscall. 2020-05-31 01:12:52 +00:00
security mac_veriexec_fingerprint_check_vnode: v_writecount > 0 means active writers 2020-06-12 21:51:20 +00:00
sys Expose UID_xxx and GID_xxx definitions to userspace. 2020-06-16 02:31:22 +00:00
teken
tests Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tools vfs: stop null checking routines in vop wrappers 2020-01-26 00:41:38 +00:00
ufs Move all of the functions in ffs_subr.c that are only used by the ufs kernel 2020-06-17 23:39:52 +00:00
vm vm: Drop vm_map_clip_{start,end} macro wrappers 2020-06-16 22:53:56 +00:00
x86 Control for Special Register Buffer Data Sampling mitigation. 2020-06-12 22:14:45 +00:00
xdr Split XDR into separate kernel module. Make krpc depend on xdr. 2020-04-17 06:04:20 +00:00
xen Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (16 of many) 2020-02-25 19:04:39 +00:00
Makefile Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00