OSDN Git Service

Bad zero comparison for sas_ss_flags on powerpc
authorAlex Barcelo <abarcelo@ac.upc.edu>
Thu, 9 Feb 2012 23:55:46 +0000 (23:55 +0000)
committerAlexander Graf <agraf@suse.de>
Thu, 15 Mar 2012 12:12:10 +0000 (13:12 +0100)
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 <abarcelo@ac.upc.edu>
Signed-off-by: Alexander Graf <agraf@suse.de>
linux-user/signal.c

index fca51e2..b1e139d 100644 (file)
@@ -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);
     }