]> granicus.if.org Git - strace/commitdiff
Fix reporting signal mask by sigreturn on powerpc
authorAndreas Schwab <schwab@linux-m68k.org>
Mon, 22 Feb 2010 23:18:51 +0000 (00:18 +0100)
committerAndreas Schwab <schwab@linux-m68k.org>
Tue, 23 Feb 2010 21:26:16 +0000 (22:26 +0100)
* signal.c (sys_sigreturn) [POWERPC]: Skip dummy stack frame when
locating signal context.

signal.c

index c1d6eb07efa6cdb5dc93cbf0f062d52ca2aa242c..bf97e900e0b4c099ddab7f307fe5a890ce966568 100644 (file)
--- a/signal.c
+++ b/signal.c
@@ -1329,6 +1329,12 @@ sys_sigreturn(struct tcb *tcp)
                tcp->u_arg[0] = 0;
                if (upeek(tcp, sizeof(unsigned long)*PT_R1, &esp) < 0)
                        return 0;
+               /* Skip dummy stack frame. */
+#ifdef __powerpc64__
+               esp += 128;
+#else
+               esp += 64;
+#endif
                if (umove(tcp, esp, &sc) < 0)
                        return 0;
                tcp->u_arg[0] = 1;