HomeFreeBSD

Pass the syscall number to capsicum permission-denied signals

Description

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 3a522ba1bc852c3d4660a4fa32e4a94999d09a47 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

Details

Provenance
theravenAuthored on Jul 10 2021, 4:19 PM
Reviewer
kib
Differential Revision
D29185: Pass the syscall number to capsicum permission-denied signals
Parents
rG4652422eb477: Merge llvm-project 12.0.1 release
Branches
Unknown
Tags
Unknown