[REVIEW][PATCH 0/5] Improving siginfo_layout and fixing uml's relay_signal

From: Eric W. Biederman
Date: Sat Apr 28 2018 - 10:02:22 EST



This patchset is a respin of my latest patch to relay_signal for uml.

As I understand relay_signal it very carefully scrubs the signal
information it gets from the host kernel before passing it on.
Basically making certain it recognizes what it is dealing with.

This patchset updates siginfo_layout so that relay_signal and arm64's
force_signal_inject can reliably use it to verify the kind of signal
being processed, by recognizing the specializations of SIL_FAULT as
separate cases.

To make the siginfo_layout changes clean. signalfd is first brought
into the modern world of using a single copy_to_user, no default case
statement (so gcc will flag missing cases), and handling SIGSYS for
seccomp.

The net is a simpler relay_signal is also more careful about which
signals it relays.

Eric

The changes are also available at:
git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace.git siginfo-review3

Eric W. Biederman (5):
signal/signalfd: Remove __put_user from signalfd_copyinfo
signal/signalfd: Add support for SIGSYS
signal: Remove unncessary #ifdef SEGV_PKUERR in 32bit compat code
signal: Extend siginfo_layout with SIL_FAULT_{MCEERR|BNDERR|PKUERR}
signal/um: More carefully relay signals in relay_signal.

arch/um/kernel/trap.c | 38 ++++++++------------
fs/signalfd.c | 84 +++++++++++++++++++++++++------------------
include/linux/signal.h | 3 ++
include/uapi/linux/signalfd.h | 6 +++-
kernel/signal.c | 82 +++++++++++++++++++++++++++---------------
5 files changed, 125 insertions(+), 88 deletions(-)