projects
/
GitHub
/
mt8127
/
android_kernel_alcatel_ttab.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge tag 'v3.10.87' into update
[GitHub/mt8127/android_kernel_alcatel_ttab.git]
/
kernel
/
signal.c
diff --git
a/kernel/signal.c
b/kernel/signal.c
index 6217aa47d7e1e2a6883012cab0f8b543a5dbfabe..e8d3c3722ce1fda122ed75f3326ebda5959cbe91 100644
(file)
--- 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.
*/
* 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;
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)
{
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;
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)
{
int, sig,
struct compat_siginfo __user *, uinfo)
{
- siginfo_t info;
+ siginfo_t info
= {}
;
if (copy_siginfo_from_user32(&info, uinfo))
return -EFAULT;
if (copy_siginfo_from_user32(&info, uinfo))
return -EFAULT;