X-Git-Url: https://git.stricted.de/?p=GitHub%2Fmt8127%2Fandroid_kernel_alcatel_ttab.git;a=blobdiff_plain;f=kernel%2Fsignal.c;h=e8d3c3722ce1fda122ed75f3326ebda5959cbe91;hp=6217aa47d7e1e2a6883012cab0f8b543a5dbfabe;hb=3460ea59c67f92c0e873e00e2508c88fb1955988;hpb=45f8c76c719654a77b4fdfc5dfbdf8a3cf3bb664 diff --git a/kernel/signal.c b/kernel/signal.c index 6217aa47d7e1..e8d3c3722ce1 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -2777,7 +2777,8 @@ int copy_siginfo_to_user(siginfo_t __user *to, siginfo_t *from) * Other callers might not initialize the si_lsb field, * so check explicitly for the right codes here. */ - if (from->si_code == BUS_MCEERR_AR || from->si_code == BUS_MCEERR_AO) + if (from->si_signo == SIGBUS && + (from->si_code == BUS_MCEERR_AR || from->si_code == BUS_MCEERR_AO)) err |= __put_user(from->si_addr_lsb, &to->si_addr_lsb); #endif break; @@ -3044,7 +3045,7 @@ COMPAT_SYSCALL_DEFINE3(rt_sigqueueinfo, int, sig, struct compat_siginfo __user *, uinfo) { - siginfo_t info; + siginfo_t info = {}; int ret = copy_siginfo_from_user32(&info, uinfo); if (unlikely(ret)) return ret; @@ -3090,7 +3091,7 @@ COMPAT_SYSCALL_DEFINE4(rt_tgsigqueueinfo, int, sig, struct compat_siginfo __user *, uinfo) { - siginfo_t info; + siginfo_t info = {}; if (copy_siginfo_from_user32(&info, uinfo)) return -EFAULT;