linux/arch
AKASHI Takahiro 3c1532df5c ARM: 7851/1: check for number of arguments in syscall_get/set_arguments()
In ftrace_syscall_enter(),
    syscall_get_arguments(..., 0, n, ...)
        if (i == 0) { <handle ORIG_r0> ...; n--;}
        memcpy(..., n * sizeof(args[0]));
If 'number of arguments(n)' is zero and 'argument index(i)' is also zero in
syscall_get_arguments(), none of arguments should be copied by memcpy().
Otherwise 'n--' can be a big positive number and unexpected amount of data
will be copied. Tracing system calls which take no argument, say sync(void),
may hit this case and eventually make the system corrupted.
This patch fixes the issue both in syscall_get_arguments() and
syscall_set_arguments().

Cc: <stable@vger.kernel.org>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2013-10-13 18:54:33 +01:00
..
alpha Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
arc Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
arm ARM: 7851/1: check for number of arguments in syscall_get/set_arguments() 2013-10-13 18:54:33 +01:00
arm64 Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
avr32 Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
blackfin Merge branch 'genirq' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2013-09-13 07:31:38 -07:00
c6x Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
cris Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
frv Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
h8300 Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
hexagon Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
ia64 Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
m32r Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
m68k Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
metag Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
microblaze Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
mips Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-09-15 17:45:52 -04:00
mn10300 Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
openrisc Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
parisc Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
powerpc Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
s390 Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
score Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
sh Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
sparc Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
tile Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
um Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
unicore32 Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
x86 Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
xtensa Xtensa patchset for v3.12 2013-09-13 10:57:48 -07:00
.gitignore
Kconfig microblaze: fix clone syscall 2013-08-13 17:57:48 -07:00