]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
parisc: fix a bug when syscall number of tracee is __NR_Linux_syscalls
authorDmitry V. Levin <ldv@altlinux.org>
Wed, 27 Apr 2016 01:56:11 +0000 (04:56 +0300)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 15 Jun 2016 20:29:31 +0000 (21:29 +0100)
commit f0b22d1bb2a37a665a969e95785c75a4f49d1499 upstream.

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.

Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Acked-by: Helge Deller <deller@gmx.de>
Signed-off-by: Helge Deller <deller@gmx.de>
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
arch/parisc/kernel/syscall.S

index 0b8d26d3ba43be545308dc70075a4a224a8b8155..7105610ac3fd2fa92cf15d5761f92c5b6f2a3a9d 100644 (file)
@@ -342,7 +342,7 @@ tracesys_next:
        stw     %r21, -56(%r30)                 /* 6th argument */
 #endif
 
-       comiclr,>>=     __NR_Linux_syscalls, %r20, %r0
+       comiclr,>>      __NR_Linux_syscalls, %r20, %r0
        b,n     .Lsyscall_nosys
 
        LDREGX  %r20(%r19), %r19