浏览代码

I don't remember exactly why we decided to pick the caller's value of
sa_restorer when SA_ONSTACK is set, but it seems to break LTP's
sigaltstack testcase. Some users have reported problems with
sigaltstack as well; hopefully this will fix it.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

Carmelo Amoroso 17 年之前
父节点
当前提交
d58c76005e
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      libc/sysdeps/linux/avr32/sigaction.c

+ 1 - 1
libc/sysdeps/linux/avr32/sigaction.c

@@ -30,7 +30,7 @@ int __libc_sigaction(int signum, const struct sigaction *act,
                kact.k_sa_handler = act->sa_handler;
                kact.k_sa_handler = act->sa_handler;
                memcpy(&kact.sa_mask, &act->sa_mask, sizeof (kact.sa_mask));
                memcpy(&kact.sa_mask, &act->sa_mask, sizeof (kact.sa_mask));
                kact.sa_flags = act->sa_flags;
                kact.sa_flags = act->sa_flags;
-               if (kact.sa_flags & (SA_RESTORER | SA_ONSTACK))
+               if (kact.sa_flags & SA_RESTORER)
                        kact.sa_restorer = act->sa_restorer;
                        kact.sa_restorer = act->sa_restorer;
                else
                else
                        kact.sa_restorer = __default_rt_sa_restorer;
                        kact.sa_restorer = __default_rt_sa_restorer;