+
+ /* Before we can unblock signals in the child, all signal
+ * handlers must be eliminated -- even implementation-internal
+ * ones. Otherwise, a signal handler could run in the child
+ * and clobber the parent's memory (due to vfork). */
+ for (i=1; i<=8*__SYSCALL_SSLEN; i++) {
+ struct sigaction sa;
+ __libc_sigaction(i, 0, &sa);
+ if (sa.sa_handler!=SIG_IGN && sa.sa_handler!=SIG_DFL) {
+ sa.sa_handler = SIG_DFL;
+ __libc_sigaction(i, &sa, 0);