qemu-e2k/linux-user
Jonathan Neuschäfer ee1045877a linux-user: fix cmsg conversion in case of multiple headers
Currently, __target_cmsg_nxthdr compares a pointer derived from
target_cmsg against the msg_control field of target_msgh (through
subtraction).  This failed for me when emulating i386 code under x86_64,
because pointers in the host address space and pointers in the guest
address space were not the same.  This patch passes the initial value of
target_cmsg into __target_cmsg_nxthdr.

I found and fixed two more related bugs:
- __target_cmsg_nxthdr now returns the new cmsg pointer instead of the
  old one.
- tgt_space (in host_to_target_cmsg) doesn't count "sizeof (struct
  target_cmsghdr)" twice anymore.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
2015-09-28 16:39:43 +03:00
..
aarch64 target-arm: make c13 cp regs banked (FCSEIDR, ...) 2014-12-11 12:07:52 +00:00
alpha linux-user/alpha: Add define for NR_shmat to enable shmat syscall 2015-01-27 22:33:56 +02:00
arm linux-user/arm: Correct TARGET_NR_timerfd to TARGET_NR_timerfd_create 2015-05-18 17:45:10 +01:00
cris linux-user: Support target-to-host translation of mlockall argument 2014-08-22 15:06:35 +03:00
i386 linux-user: Support target-to-host translation of mlockall argument 2014-08-22 15:06:35 +03:00
m68k linux-user: Support target-to-host translation of mlockall argument 2014-08-22 15:06:35 +03:00
microblaze linux-user: Support target-to-host translation of mlockall argument 2014-08-22 15:06:35 +03:00
mips linux-user: Support target-to-host translation of mlockall argument 2014-08-22 15:06:35 +03:00
mips64 mips64-linux-user: Fix definition of struct sigaltstack 2015-01-27 22:33:57 +02:00
openrisc linux-user: Support target-to-host translation of mlockall argument 2014-08-22 15:06:35 +03:00
ppc linux-user: Support target-to-host translation of mlockall argument 2014-08-22 15:06:35 +03:00
s390x linux-user: Support target-to-host translation of mlockall argument 2014-08-22 15:06:35 +03:00
sh4 linux-user: Support target-to-host translation of mlockall argument 2014-08-22 15:06:35 +03:00
sparc linux-user: Support target-to-host translation of mlockall argument 2014-08-22 15:06:35 +03:00
sparc64 linux-user: Support target-to-host translation of mlockall argument 2014-08-22 15:06:35 +03:00
tilegx linux-user: tilegx: Add architecture related features 2015-09-15 07:17:51 -07:00
unicore32 linux-user: Support target-to-host translation of mlockall argument 2014-08-22 15:06:35 +03:00
x86_64 linux-user: Support target-to-host translation of mlockall argument 2014-08-22 15:06:35 +03:00
elfload.c linux-user: remove MAX_ARG_PAGES limit 2015-09-28 16:29:11 +03:00
errno_defs.h
flat.h
flatload.c linux-user: remove MAX_ARG_PAGES limit 2015-09-28 16:29:11 +03:00
ioctls.h linux-user: Convert blkpg to use a special subop handler 2014-10-06 21:52:45 +03:00
linux_loop.h
linuxload.c linux-user: remove MAX_ARG_PAGES limit 2015-09-28 16:29:11 +03:00
m68k-sim.c exec: Change cpu_abort() argument to CPUState 2014-03-13 19:52:28 +01:00
main.c linux-user: Treat --foo options the same as -foo 2015-09-28 16:13:22 +03:00
Makefile.objs linux-user: rename cpu-uname -> uname 2014-05-02 21:59:36 +03:00
mmap.c linux-user: remove useless macros GUEST_BASE and RESERVED_VA 2015-08-24 11:14:30 -07:00
qemu.h linux-user: remove MAX_ARG_PAGES limit 2015-09-28 16:29:11 +03:00
signal.c maint: remove unused include for assert.h 2015-09-11 10:21:38 +03:00
socket.h linux-user: support SO_PASSSEC setsockopt option 2014-06-29 14:19:59 +03:00
strace.c linux-user: Don't omit comma for strace of rt_sigaction() 2013-04-05 14:40:54 +02:00
strace.list linux-user: add setns and unshare 2014-08-22 15:06:34 +03:00
syscall_defs.h linux-user: fix cmsg conversion in case of multiple headers 2015-09-28 16:39:43 +03:00
syscall_types.h linux-user: Convert blkpg to use a special subop handler 2014-10-06 21:52:45 +03:00
syscall.c linux-user: fix cmsg conversion in case of multiple headers 2015-09-28 16:39:43 +03:00
target_flat.h
uaccess.c
uname.c linux-user/uname: Return correct uname string for x86_64 2014-06-17 09:21:40 +03:00
uname.h linux-user: move uname functions to uname.c 2014-05-02 21:59:36 +03:00
vm86.c linux-user/vm86.c: Use cpu_ldl_data &c rather than plain ldl &c 2015-01-20 15:19:33 +00:00