linux/arch/arm64/kernel
Catalin Marinas 676b72e20d arm64: compat Fix siginfo_t -> compat_siginfo_t conversion on big endian
commit 9d42d48a34 upstream.

The native (64-bit) sigval_t union contains sival_int (32-bit) and
sival_ptr (64-bit). When a compat application invokes a syscall that
takes a sigval_t value (as part of a larger structure, e.g.
compat_sys_mq_notify, compat_sys_timer_create), the compat_sigval_t
union is converted to the native sigval_t with sival_int overlapping
with either the least or the most significant half of sival_ptr,
depending on endianness. When the corresponding signal is delivered to a
compat application, on big endian the current (compat_uptr_t)sival_ptr
cast always returns 0 since sival_int corresponds to the top part of
sival_ptr. This patch fixes copy_siginfo_to_user32() so that sival_int
is copied to the compat_siginfo_t structure.

Reported-by: Bamvor Jian Zhang <bamvor.zhangjian@huawei.com>
Tested-by: Bamvor Jian Zhang <bamvor.zhangjian@huawei.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2015-03-06 14:43:31 -08:00
..
vdso arm64: vdso: fix coarse clock handling 2014-02-05 11:55:30 +00:00
.gitignore arm64: Build infrastructure 2012-09-17 13:42:21 +01:00
arm64ksyms.c arm64: use generic strnlen_user and strncpy_from_user functions 2013-12-19 17:43:06 +00:00
asm-offsets.c arm64: kernel: cpu_{suspend/resume} implementation 2013-12-16 17:17:31 +00:00
cpu_ops.c arm64: Slightly improve the warning on CPU0 enable-method 2013-10-31 16:37:26 +00:00
cputable.c arm64: add CPU_HOTPLUG infrastructure 2013-10-25 11:33:21 +01:00
debug-monitors.c arm64: support single-step and breakpoint handler hooks 2013-12-19 17:43:11 +00:00
early_printk.c arm64: Fix duplicate definition of early_console 2013-05-13 11:44:53 +01:00
entry-fpsimd.S arm64: move FP-SIMD save/restore code to a macro 2012-12-05 11:26:50 +00:00
entry.S arm64: Bug fix in stack alignment exception 2014-07-09 11:18:27 -07:00
fpsimd.c arm64: kernel: implement fpsimd CPU PM notifier 2013-12-16 17:17:32 +00:00
head.S arm64: Remove unused __data_loc variable 2013-12-20 12:04:48 +00:00
hw_breakpoint.c arm64: kernel: restore HW breakpoint registers in cpu_suspend 2014-01-10 17:51:35 +00:00
hyp-stub.S arm64: add hypervisor stub 2012-12-05 11:26:49 +00:00
insn.c Correct the race condition in aarch64_insn_patch_text_sync() 2014-11-21 09:23:02 -08:00
io.c arm64: Device specific operations 2012-09-17 13:42:04 +01:00
irq.c arm64: use irq_set_affinity with force=false when migrating irqs 2014-10-05 14:52:10 -07:00
jump_label.c arm64, jump label: optimize jump label implementation 2014-01-08 15:23:53 +00:00
kuser32.S arm64: atomics: fix use of acquire + release for full barrier semantics 2014-02-07 16:45:43 +00:00
Makefile arm64, jump label: optimize jump label implementation 2014-01-08 15:23:53 +00:00
module.c arm64: move encode_insn_immediate() from module.c to insn.c 2014-01-08 15:21:29 +00:00
perf_event.c arm64: perf: add support for percpu pmu interrupt 2013-12-19 17:43:05 +00:00
process.c arm64: flush TLS registers during exec 2014-10-05 14:52:10 -07:00
psci.c arm64: add PSCI CPU_OFF-based hotplug support 2013-10-25 11:33:21 +01:00
ptrace.c arm64: ptrace: fix compat hardware watchpoint reporting 2014-10-05 14:52:11 -07:00
setup.c arm64: Fix up /proc/cpuinfo 2015-02-11 14:54:48 +08:00
signal.c arm64: switch to generic sigaltstack 2013-02-14 09:17:29 -05:00
signal32.c arm64: compat Fix siginfo_t -> compat_siginfo_t conversion on big endian 2015-03-06 14:43:31 -08:00
sleep.S arm64: Move cpu_resume into the text section 2015-01-16 06:59:34 -08:00
smp.c arm64: Fix up /proc/cpuinfo 2015-02-11 14:54:48 +08:00
smp_spin_table.c arm64: big-endian: write CPU holding pen address as LE 2013-10-25 15:59:42 +01:00
stacktrace.c ARM64: unwind: Fix PC calculation 2014-02-17 09:16:33 +00:00
suspend.c arm64: kernel: fix __cpu_suspend mm switch on warm-boot 2015-01-16 06:59:34 -08:00
sys.c arm64: switch to generic sigaltstack 2013-02-14 09:17:29 -05:00
sys32.S arm64: compat: correct register concatenation for syscall wrappers 2013-10-25 15:59:36 +01:00
sys_compat.c arm64: flush TLS registers during exec 2014-10-05 14:52:10 -07:00
time.c arch_timer: Move to generic sched_clock framework 2013-10-09 16:54:10 -07:00
traps.c arm64: debug: consolidate software breakpoint handlers 2013-06-12 11:23:02 +01:00
vdso.c arm64: vdso: update wtm fields for CLOCK_MONOTONIC_COARSE 2014-02-05 11:55:49 +00:00
vmlinux.lds.S arm64: Remove unused __data_loc variable 2013-12-20 12:04:48 +00:00