linux/arch/arm/kernel
Will Deacon 6a68b6f574 ARM: 7411/1: audit: fix treatment of saved ip register during syscall tracing
The ARM audit code incorrectly uses the saved application ip register
value to infer syscall entry or exit. Additionally, the saved value will
be clobbered if the current task is not being traced, which can lead to
libc corruption if ip is live (apparently glibc uses it for the TLS
pointer).

This patch fixes the syscall tracing code so that the why parameter is
used to infer the syscall direction and the saved ip is only updated if
we know that we will be signalling a ptrace trap.

Reported-and-Tested-by: Jon Masters <jcm@jonmasters.org>

Cc: stable@vger.kernel.org
Cc: Eric Paris <eparis@redhat.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-05-05 13:54:01 +01:00
..
.gitignore
armksyms.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
arthur.c
asm-offsets.c ARM: 7114/1: cache-l2x0: add resume entry for l2 in secure mode 2011-10-17 09:11:51 +01:00
atags.c
atags.h
bios32.c ARM: fix bios32.c build warning 2012-03-30 21:03:54 +01:00
calls.S ARM: wire up process_vm_writev and process_vm_readv syscalls 2011-11-17 16:58:00 +00:00
compat.c
compat.h
cpuidle.c cpuidle: Add common time keeping and irq enabling 2012-03-21 01:59:40 -04:00
crash_dump.c
debug.S ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
devtree.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
dma-isa.c
dma.c locking, ARM: Annotate low level hw locks as raw 2011-09-13 11:12:14 +02:00
early_printk.c
elf.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
entry-armv.S ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
entry-common.S ARM: make arch_ret_to_user macro optional 2012-02-21 17:04:10 -06:00
entry-header.S Merge branch 'devel-stable' into for-next 2011-07-22 23:09:07 +01:00
etm.c arm: fix implicit module.h users by adding it to arch/arm as required. 2011-10-31 19:30:50 -04:00
fiq.c ARM: move CP15 definitions to separate header file 2012-03-28 18:30:01 +01:00
fiqasm.S
ftrace.c ARM: 7331/1: extract out insn generation code from ftrace 2012-03-24 09:38:55 +00:00
head-common.S
head-nommu.S ARM: move CP15 definitions to separate header file 2012-03-28 18:30:01 +01:00
head.S ARM: move CP15 definitions to separate header file 2012-03-28 18:30:01 +01:00
hw_breakpoint.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
init_task.c
insn.c ARM: fix missing bug.h include in arch/arm/kernel/insn.c 2012-03-30 11:51:46 +01:00
insn.h ARM: 7334/1: add jump label support 2012-03-24 09:38:56 +00:00
io.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
irq.c ARM: 7406/1: hotplug: copy the affinity mask when forcefully migrating IRQs 2012-04-28 11:01:31 +01:00
isa.c
iwmmxt.S ARM: pxa: fix logic error in PJ4 iWMMXt handling 2011-08-11 10:10:26 +08:00
jump_label.c ARM: 7334/1: add jump label support 2012-03-24 09:38:56 +00:00
kgdb.c
kprobes-arm.c ARM: 7181/1: Restrict kprobes probing SWP instructions to ARMv5 and below 2011-11-30 23:54:54 +00:00
kprobes-common.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
kprobes-test-arm.c ARM: 7181/1: Restrict kprobes probing SWP instructions to ARMv5 and below 2011-11-30 23:54:54 +00:00
kprobes-test-thumb.c ARM: 7174/1: Fix build error in kprobes test code on Thumb2 kernels 2011-11-26 21:58:53 +00:00
kprobes-test.c ARM: 7209/1: Use generic ARM instruction set condition code checks for kprobes. 2011-12-13 08:52:03 +00:00
kprobes-test.h ARM: 7174/1: Fix build error in kprobes test code on Thumb2 kernels 2011-11-26 21:58:53 +00:00
kprobes-thumb.c ARM: kprobes: Add exports for test code 2011-09-20 18:17:43 +00:00
kprobes.c Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1 2012-04-02 08:53:24 -07:00
kprobes.h ARM: kprobes: Add exports for test code 2011-09-20 18:17:43 +00:00
leds.c arm: leds: convert sysdev_class to a regular subsystem 2011-12-21 15:52:57 -08:00
machine_kexec.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
Makefile Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux 2012-03-30 16:45:39 -07:00
module.c ARM: 7059/1: LPAE: Use PMD_(SHIFT|SIZE|MASK) instead of PGDIR_* 2011-08-23 15:30:33 +01:00
opcodes.c ARM: 7206/1: Add generic ARM instruction set condition code checks. 2011-12-13 08:52:02 +00:00
patch.c ARM: 7332/1: extract out code patch function from kprobes 2012-03-24 09:38:55 +00:00
patch.h ARM: 7332/1: extract out code patch function from kprobes 2012-03-24 09:38:55 +00:00
perf_event.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
perf_event_v6.c ARM: 7356/1: perf: check that we have an event in the PMU IRQ handlers 2012-03-07 09:40:49 +00:00
perf_event_v7.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
perf_event_xscale.c ARM: 7357/1: perf: fix overflow handling for xscale2 PMUs 2012-03-07 09:40:49 +00:00
pj4-cp0.c arm: remove several unnecessary module.h include instances 2011-10-31 19:30:48 -04:00
pmu.c ARM: PMU: re-export release_pmu symbol to modules 2011-11-16 10:06:42 +00:00
process.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
ptrace.c ARM: 7411/1: audit: fix treatment of saved ip register during syscall tracing 2012-05-05 13:54:01 +01:00
relocate_kernel.S ARM: 7065/1: kexec: ensure new kernel is entered in ARM state 2011-08-28 10:39:41 +01:00
return_address.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
sched_clock.c ARM: sync sched_clock() state on suspend 2012-03-24 09:38:53 +00:00
setup.c ARM: 7382/1: mm: truncate memory banks to fit in 4GB space for classic MMU 2012-04-15 22:00:30 +01:00
signal.c ARM: 7399/1: vfp: move user vfp state save/restore code out of signal.c 2012-04-23 15:44:41 +01:00
signal.h
sleep.S Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
smp.c ARM: 7405/1: kexec: call platform_cpu_kill on the killer rather than the victim 2012-04-28 11:01:31 +01:00
smp_scu.c Merge branches 'arnd-randcfg-fixes', 'debug', 'io' (early part), 'l2x0', 'p2v', 'pgt' (early part) and 'smp' into for-linus 2011-10-25 08:19:29 +01:00
smp_tlb.c smp: introduce a generic on_each_cpu_mask() function 2012-03-28 17:14:35 -07:00
smp_twd.c Revert "ARM: 7359/2: smp_twd: Only wait for reprogramming on active cpus" 2012-04-19 19:35:10 +01:00
stacktrace.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
suspend.c ARM: suspend: use idmap_pgd instead of suspend_pgd 2011-12-06 14:04:14 +00:00
swp_emulate.c ARM: 7208/1: Add condition code checking to SWP emulation handler. 2011-12-13 08:52:03 +00:00
sys_arm.c ARM: 7410/1: Add extra clobber registers for assembly in kernel_execve 2012-05-05 13:54:01 +01:00
sys_oabi-compat.c
tcm.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
tcm.h
thumbee.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
time.c Merge branch 'sched_clock-for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into devel-stable 2012-02-04 10:32:18 +00:00
topology.c ARM: 7182/1: ARM cpu topology: fix warning 2011-11-30 23:55:21 +00:00
traps.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
unwind.c ARM: unwinder: fix bisection to find origin in .idx section 2011-12-15 14:02:19 -08:00
vmlinux.lds.S ARM: 7320/1: Fix proc_info table alignment 2012-02-09 16:25:37 +00:00
xscale-cp0.c arm: remove several unnecessary module.h include instances 2011-10-31 19:30:48 -04:00