From: Laurent Vivier <Laurent@vivier.eu>
To: qemu-devel@nongnu.org
Cc: Riku Voipio <riku.voipio@iki.fi>
Subject: Re: [Qemu-devel] [PATCH] linux-user: correct msgrcv()
Date: Wed, 02 Jan 2013 00:10:52 +0100 [thread overview]
Message-ID: <1357081852.31530.10.camel@Quad> (raw)
In-Reply-To: <1356037211-19530-1-git-send-email-laurent@vivier.eu>
Ping !
Le jeudi 20 décembre 2012 à 22:00 +0100, Laurent Vivier a écrit :
> 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>
> ---
> linux-user/syscall.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 7bab006..78cb764 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -2901,7 +2901,7 @@ static inline abi_long do_msgrcv(int msqid, abi_long msgp,
> return -TARGET_EFAULT;
>
> host_mb = g_malloc(msgsz+sizeof(long));
> - ret = get_errno(msgrcv(msqid, host_mb, msgsz, tswapal(msgtyp), msgflg));
> + ret = get_errno(msgrcv(msqid, host_mb, msgsz, msgtyp, msgflg));
>
> if (ret > 0) {
> abi_ulong target_mtext_addr = msgp + sizeof(abi_ulong);
> @@ -3199,7 +3199,7 @@ static abi_long do_ipc(unsigned int call, int first,
> break;
> }
>
> - ret = do_msgrcv(first, tmp->msgp, second, tmp->msgtyp, third);
> + ret = do_msgrcv(first, tswapal(tmp->msgp), second, tswapal(tmp->msgtyp), third);
>
> unlock_user_struct(tmp, ptr, 0);
> break;
--
"Just play. Have fun. Enjoy the game."
- Michael Jordan
"Just play. Have fun. Enjoy the game."
- Michael Jordan
next prev parent reply other threads:[~2013-01-01 23:10 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-20 21:00 [Qemu-devel] [PATCH] linux-user: correct msgrcv() Laurent Vivier
2013-01-01 23:10 ` Laurent Vivier [this message]
2013-01-02 0:03 ` Peter Maydell
2013-01-19 23:29 ` Laurent Vivier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1357081852.31530.10.camel@Quad \
--to=laurent@vivier.eu \
--cc=qemu-devel@nongnu.org \
--cc=riku.voipio@iki.fi \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.