opnsense-src/sys/amd64/linux32
David Chisnall cf98bc28d3 Pass the syscall number to capsicum permission-denied signals
The syscall number is stored in the same register as the syscall return
on amd64 (and possibly other architectures) and so it is impossible to
recover in the signal handler after the call has returned.  This small
tweak delivers it in the `si_value` field of the signal, which is
sufficient to catch capability violations and emulate them with a call
to a more-privileged process in the signal handler.

This reapplies 3a522ba1bc with a fix for
the static assertion failure on i386.

Approved by:	markj (mentor)

Reviewed by:	kib, bcr (manpages)

Differential Revision: https://reviews.freebsd.org/D29185
2021-07-16 18:06:44 +01:00
..
linux.h linux(4): Make vDSO defines private. 2021-06-25 18:41:04 +03:00
linux32_dummy_machdep.c linux(4): Implement ppoll_time64 system call. 2021-06-10 15:18:46 +03:00
linux32_genassym.c Implement vdso - virtual dynamic shared object. Through vdso Linux 2015-05-24 15:28:17 +00:00
linux32_locore.asm x86: remove gcov kernel support 2021-04-02 15:41:51 +03:00
linux32_machdep.c linux: refactor bsd_to_linux_regset() out of linux_ptrace.c 2021-05-21 07:26:07 +01:00
linux32_proto.h linux(4): Regen for linux_poll system call. 2021-06-22 08:09:55 +03:00
linux32_support.s amd64/linux*: add required header to get the constant value 2021-05-26 01:24:09 +03:00
linux32_syscall.h linux(4): Regen for linux_poll system call. 2021-06-22 08:09:55 +03:00
linux32_syscalls.c linux(4): Regen for linux_poll system call. 2021-06-22 08:09:55 +03:00
linux32_sysent.c linux(4): Regen for linux_poll system call. 2021-06-22 08:09:55 +03:00
linux32_systrace_args.c linux(4): Regen for linux_poll system call. 2021-06-22 08:09:55 +03:00
linux32_sysvec.c Pass the syscall number to capsicum permission-denied signals 2021-07-16 18:06:44 +01:00
linux32_vdso.lds.s Put linux_platform into the vdso to avoid copying it onto the stack at 2015-05-24 15:30:52 +00:00
Makefile sysent targets: further cleanup and deduplication 2020-01-18 20:37:45 +00:00
syscalls.conf Rename remaining linux32 symbols such as linux_sysent[] and 2015-10-22 21:28:20 +00:00
syscalls.master linux(4): Implement poll system call via linux_common_ppol() 2021-06-22 08:07:46 +03:00