fixed crash in new rsyscall (failure to set sa_flags for signal handler)
authorRich Felker <dalias@aerifal.cx>
Thu, 7 Apr 2011 00:43:39 +0000 (20:43 -0400)
committerRich Felker <dalias@aerifal.cx>
Thu, 7 Apr 2011 00:43:39 +0000 (20:43 -0400)
src/thread/__rsyscall.c

index 923db2bff5c7cb24d1b743614cff8e76c7ec5698..61d41df76b4b3466a549be50b27789ee829bbbed 100644 (file)
@@ -61,12 +61,14 @@ int __rsyscall(int nr, long a, long b, long c, long d, long e, long f)
 
        if (!rs.init) {
                struct sigaction sa = {
+                       .sa_flags = SA_SIGINFO | SA_RESTART,
                        .sa_sigaction = rsyscall_handler,
                        .sa_mask = set
                };
                sigfillset(&sa.sa_mask);
                sa.sa_sigaction = rsyscall_handler;
                __libc_sigaction(SIGSYSCALL, &sa, 0);
+               rs.init = 1;
        }
 
        rs.nr = nr;