qemu-e2k/linux-user
Peter Maydell 55d72a7eb3 linux-user: Avoid possible misalignment in host_to_target_siginfo()
host_to_target_siginfo() is implemented by a combination of
host_to_target_siginfo_noswap() followed by tswap_siginfo().
The first of these two functions assumes that the target_siginfo_t
it is writing to is correctly aligned, but the pointer passed
into host_to_target_siginfo() is directly from the guest and
might be misaligned. Use a local variable to avoid this problem.
(tswap_siginfo() does now correctly handle a misaligned destination.)

We have to add a memset() to host_to_target_siginfo_noswap()
to avoid some false positive "may be used uninitialized" warnings
from gcc about subfields of the _sifields union if it chooses to
inline both tswap_siginfo() and host_to_target_siginfo_noswap()
into host_to_target_siginfo().

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Peter Maydell <riku.voipio@linaro.org>
2016-06-24 11:55:44 +03:00
..
aarch64
alpha
arm linux-user: arm: Remove ARM_cpsr and similar #defines 2016-05-27 14:50:39 +03:00
cris linux-user: Support for restarting system calls for CRIS targets 2016-05-27 14:49:50 +03:00
host linux-user: provide frame information in x86-64 safe_syscall 2016-06-08 10:13:45 +03:00
i386
m68k linux-user: Support for restarting system calls for M68K targets 2016-05-27 14:49:50 +03:00
microblaze linux-user: Support for restarting system calls for Microblaze targets 2016-05-27 14:49:51 +03:00
mips
mips64
openrisc linux-user: Support for restarting system calls for OpenRISC targets 2016-05-27 14:49:50 +03:00
ppc
s390x linux-user: Support for restarting system calls for S390 targets 2016-05-27 14:49:50 +03:00
sh4
sparc
sparc64
tilegx linux-user: Support for restarting system calls for tilegx targets 2016-05-27 14:49:50 +03:00
unicore32
x86_64
elfload.c os-posix: include sys/mman.h 2016-06-16 18:39:03 +02:00
errno_defs.h
flat.h
flatload.c os-posix: include sys/mman.h 2016-06-16 18:39:03 +02:00
ioctls.h
linux_loop.h
linuxload.c
m68k-sim.c
main.c ppc: Rework generation of priv and inval interrupts 2016-06-23 12:43:54 +10:00
Makefile.objs linux-user: Provide safe_syscall for fixing races between signals and syscalls 2016-05-27 14:49:51 +03:00
mmap.c os-posix: include sys/mman.h 2016-06-16 18:39:03 +02:00
qemu.h linux-user: Make target_strerror() return 'const char *' 2016-06-08 12:06:57 +03:00
safe-syscall.S linux-user: Provide safe_syscall for fixing races between signals and syscalls 2016-05-27 14:49:51 +03:00
signal.c linux-user: Avoid possible misalignment in host_to_target_siginfo() 2016-06-24 11:55:44 +03:00
socket.h
strace.c os-posix: include sys/mman.h 2016-06-16 18:39:03 +02:00
strace.list
syscall_defs.h linux-user: Correct signedness of target_flock l_start and l_len fields 2016-06-08 12:06:50 +03:00
syscall_types.h
syscall.c os-posix: include sys/mman.h 2016-06-16 18:39:03 +02:00
target_flat.h
trace-events trace: split out trace events for linux-user/ directory 2016-06-20 17:22:17 +01:00
uaccess.c
uname.c
uname.h
vm86.c