From patchwork Thu Mar 15 12:14:07 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [01/16] Bad zero comparison for sas_ss_flags on powerpc From: Alexander Graf X-Patchwork-Id: 146934 Message-Id: <1331813662-15141-2-git-send-email-agraf@suse.de> To: qemu-devel qemu-devel Cc: blauwirbel@gmail.com, Alex Barcelo , qemu-ppc@nongnu.org, aurelien@aurel32.net Date: Thu, 15 Mar 2012 13:14:07 +0100 From: Alex Barcelo All architectures work the same way, and all check for sas_ss_flags == 0. The powerpc lines are wrong, and do the check the other way round (it's a qemu internal check, which is done wrong only for this architecture, it's more a typo than a bug). It's NOT ppc specific, it's POSIX standard (sigaltstack) and qemu internal. I have a test source that I will send in a follow-up (it's longer than I would have wished, I'm sure that a better test case can be written if needed) Signed-off-by: Alex Barcelo Signed-off-by: Alexander Graf --- linux-user/signal.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/linux-user/signal.c b/linux-user/signal.c index fca51e2..b1e139d 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -4118,7 +4118,7 @@ static target_ulong get_sigframe(struct target_sigaction *ka, oldsp = env->gpr[1]; if ((ka->sa_flags & TARGET_SA_ONSTACK) && - (sas_ss_flags(oldsp))) { + (sas_ss_flags(oldsp) == 0)) { oldsp = (target_sigaltstack_used.ss_sp + target_sigaltstack_used.ss_size); }