From: Laurent Vivier <laurent@vivier.eu>
To: Michael Karcher <karcher@physik.fu-berlin.de>,
Riku Voipio <riku.voipio@iki.fi>,
qemu-devel@nongnu.org
Cc: glaubitz@physik.fu-berlin.de
Subject: Re: [Qemu-devel] [PATCH 1/1] Fix do_rt_sigreturn on m68k linux userspace emulation
Date: Wed, 9 Dec 2015 23:03:24 +0100 [thread overview]
Message-ID: <5668A52C.1070408@vivier.eu> (raw)
In-Reply-To: <1449694457-5843-2-git-send-email-karcher@physik.fu-berlin.de>
Le 09/12/2015 21:54, Michael Karcher a écrit :
> do_rt_sigreturn forgets to initialize the signal mask variable before
> trying to use it to restore the mask, so the signal mask is undefined
> after do_rt_sigreturn. This bug has been in all the time since
> 7181155d when do_rt_sigreturn was implemented for m68k.
>
> Signed-off-by: Michael Karcher <karcher@physik.fu-berlin.de>
> ---
> linux-user/signal.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/linux-user/signal.c b/linux-user/signal.c
> index e03ed60..ae1014b 100644
> --- a/linux-user/signal.c
> +++ b/linux-user/signal.c
> @@ -5260,11 +5260,14 @@ long do_rt_sigreturn(CPUM68KState *env)
> abi_ulong frame_addr = env->aregs[7] - 4;
> target_sigset_t target_set;
> sigset_t set;
> - int d0;
> + int d0, i;
>
> if (!lock_user_struct(VERIFY_READ, frame, frame_addr, 1))
> goto badframe;
>
> + for(i = 0; i < TARGET_NSIG_WORDS; i++) {
> + target_set.sig[i] = frame->uc.tuc_sigmask.sig[i];
> + }
> target_to_host_sigset_internal(&set, &target_set);
> do_sigprocmask(SIG_SETMASK, &set, NULL);
>
>
Nice catch.
I agree with you that the current code is completely broken, but on the
other architectures, this operation seems to be done directly by
target_to_host_sigset(&set, &frame->uc.tuc_sigmask);
Could you have try with that ?
Thank you for your help,
Laurent
next prev parent reply other threads:[~2015-12-09 22:03 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-09 20:54 [Qemu-devel] [PATCH 0/1] m68k linux user-space emulation fix (with sign-off this time) Michael Karcher
2015-12-09 20:54 ` [Qemu-devel] [PATCH 1/1] Fix do_rt_sigreturn on m68k linux userspace emulation Michael Karcher
2015-12-09 22:03 ` Laurent Vivier [this message]
2015-12-12 9:55 ` Michael Karcher
2015-12-12 10:35 ` Laurent Vivier
2015-12-09 21:26 ` [Qemu-devel] [PATCH 0/1] m68k linux user-space emulation fix (with sign-off this time) John Paul Adrian Glaubitz
-- strict thread matches above, loose matches on Subject: below --
2015-12-09 20:40 [Qemu-devel] [PATCH 1/1] Fix do_rt_sigreturn on m68k linux userspace emulation Michael Karcher
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=5668A52C.1070408@vivier.eu \
--to=laurent@vivier.eu \
--cc=glaubitz@physik.fu-berlin.de \
--cc=karcher@physik.fu-berlin.de \
--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.