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>
This commit is contained in:
@@ -737,6 +737,7 @@ static void send_sigio_to_task(struct task_struct *p,
|
||||
delivered even if we can't queue. Failure to
|
||||
queue in this case _should_ be reported; we fall
|
||||
back to SIGIO in that case. --sct */
|
||||
clear_siginfo(&si);
|
||||
si.si_signo = signum;
|
||||
si.si_errno = 0;
|
||||
si.si_code = reason;
|
||||
|
Reference in New Issue
Block a user