signal: Ensure generic siginfos the kernel sends have all bits initialized
authorEric W. Biederman <ebiederm@xmission.com>
Fri, 5 Jan 2018 23:27:42 +0000 (17:27 -0600)
committerEric W. Biederman <ebiederm@xmission.com>
Fri, 12 Jan 2018 20:21:07 +0000 (14:21 -0600)
commitfaf1f22b61f2715224ba9b579e2a983e99b86823
treefb871c31027141a61c4e1d898d967df6baab025d
parent8c5dbf2ae00bb8667f61c5edc6521c1fa2bbe4d7
signal: Ensure generic siginfos the kernel sends have all bits initialized

Call clear_siginfo to ensure stack allocated siginfos are fully
initialized before being passed to the signal sending functions.

This ensures that if there is the kind of confusion documented by
TRAP_FIXME, FPE_FIXME, or BUS_FIXME the kernel won't send unitialized
data to userspace when the kernel generates a signal with SI_USER but
the copy to userspace assumes it is a different kind of signal, and
different fields are initialized.

This also prepares the way for turning copy_siginfo_to_user
into a copy_to_user, by removing the need in many cases to perform
a field by field copy simply to skip the uninitialized fields.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
fs/fcntl.c
ipc/mqueue.c
kernel/signal.c