diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2017-08-01 12:02:38 +0200 |
---|---|---|
committer | Eric W. Biederman <ebiederm@xmission.com> | 2018-01-12 21:23:36 +0100 |
commit | 6ac1dc736b323011a55ecd1fc5897c24c4f77cbd (patch) | |
tree | 2bb4ab3a88e8266cee7b4cda6512fa4cffb712fd | |
parent | signal: Ensure generic siginfos the kernel sends have all bits initialized (diff) | |
download | linux-6ac1dc736b323011a55ecd1fc5897c24c4f77cbd.tar.xz linux-6ac1dc736b323011a55ecd1fc5897c24c4f77cbd.zip |
mn10300/misalignment: Use SIGSEGV SEGV_MAPERR to report a failed user copy
Setting si_code to 0 is the same a setting si_code to SI_USER which is definitely
not correct. With si_code set to SI_USER si_pid and si_uid will be copied to
userspace instead of si_addr. Which is very wrong.
So fix this by using a sensible si_code (SEGV_MAPERR) for this failure.
Cc: stable@vger.kernel.org
Fixes: b920de1b77b7 ("mn10300: add the MN10300/AM33 architecture to the kernel")
Cc: David Howells <dhowells@redhat.com>
Cc: Masakazu Urade <urade.masakazu@jp.panasonic.com>
Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
-rw-r--r-- | arch/mn10300/mm/misalignment.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/mn10300/mm/misalignment.c b/arch/mn10300/mm/misalignment.c index b39a388825ae..8ace89617c1c 100644 --- a/arch/mn10300/mm/misalignment.c +++ b/arch/mn10300/mm/misalignment.c @@ -437,7 +437,7 @@ transfer_failed: info.si_signo = SIGSEGV; info.si_errno = 0; - info.si_code = 0; + info.si_code = SEGV_MAPERR; info.si_addr = (void *) regs->pc; force_sig_info(SIGSEGV, &info, current); return; |