diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2016-04-26 21:56:11 -0400 |
---|---|---|
committer | Helge Deller <deller@gmx.de> | 2016-05-06 09:09:07 -0400 |
commit | f0b22d1bb2a37a665a969e95785c75a4f49d1499 (patch) | |
tree | e6f99f2b36d935afabd54fa1ba0ab5dd968cdbd3 /arch/parisc | |
parent | 9caa7e78481f17fb6ff77dfaca774998e7440430 (diff) |
parisc: fix a bug when syscall number of tracee is __NR_Linux_syscalls
Do not load one entry beyond the end of the syscall table when the
syscall number of a traced process equals to __NR_Linux_syscalls.
Similar bug with regular processes was fixed by commit 3bb457af4fa8
("[PARISC] Fix bug when syscall nr is __NR_Linux_syscalls").
This bug was found by strace test suite.
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Acked-by: Helge Deller <deller@gmx.de>
Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'arch/parisc')
-rw-r--r-- | arch/parisc/kernel/syscall.S | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/parisc/kernel/syscall.S b/arch/parisc/kernel/syscall.S index c976ebfe2269..57b4836b7ecd 100644 --- a/arch/parisc/kernel/syscall.S +++ b/arch/parisc/kernel/syscall.S | |||
@@ -344,7 +344,7 @@ tracesys_next: | |||
344 | #endif | 344 | #endif |
345 | 345 | ||
346 | cmpib,COND(=),n -1,%r20,tracesys_exit /* seccomp may have returned -1 */ | 346 | cmpib,COND(=),n -1,%r20,tracesys_exit /* seccomp may have returned -1 */ |
347 | comiclr,>>= __NR_Linux_syscalls, %r20, %r0 | 347 | comiclr,>> __NR_Linux_syscalls, %r20, %r0 |
348 | b,n .Ltracesys_nosys | 348 | b,n .Ltracesys_nosys |
349 | 349 | ||
350 | LDREGX %r20(%r19), %r19 | 350 | LDREGX %r20(%r19), %r19 |