linux-user: correct msgrcv()
commit79dd77de124c47263f54e5f686273487e0016a8f
authorLaurent Vivier <laurent@vivier.eu>
Thu, 20 Dec 2012 11:00:11 +0000 (20 11:00 +0000)
committerLaurent Vivier <laurent@vivier.eu>
Wed, 30 Jan 2013 11:13:21 +0000 (30 12:13 +0100)
treecc0c412e0ddd0f5382e158a7e31e547179747c39
parent4c37ef022381e777251d7084591978a4dc622efe
linux-user: correct msgrcv()

All parameters must be swapped before the call of do_msgrcv().

Allow faked (debian fakeroot daemon) to work properly.

WITHOUT this patch:

$ faked-sysv --foreground --debug
using 1723744788 as msg key
msg_key=1723744788
1723744788:431
FAKEROOT: msg=131072, key=1723744788
FAKEROOT: r=-1, received message type=-150996052, message=-160219330
FAKEROOT, get_msg: Bad address
r=14, EINTR=4
fakeroot: clearing up message queues and semaphores, signal=-1
fakeroot: database save FAILED

WITH this patch:

$ faked-sysv --foreground --debug
using 1569385744 as msg key
msg_key=1569385744
1569385744:424
FAKEROOT: msg=0, key=1569385744
^C
fakeroot: clearing up message queues and semaphores, signal=2
fakeroot: database save FAILED

Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
linux-user/syscall.c