--- ./sysdeps/unix/sysv/linux/ssp.c.orig 2004-01-23 19:54:19.000000000 -0500 +++ ./sysdeps/unix/sysv/linux/ssp.c 2004-01-23 19:56:34.000000000 -0500 @@ -52,8 +52,8 @@ { sigset_t mask; sigfillset(&mask); - sigdelset(&mask, SIGABRT); /* Block all signal handlers */ - sigprocmask(SIG_BLOCK, &mask, NULL); /* except SIGABRT */ + sigdelset(&mask, SIGSEGV); /* Block all signal handlers */ + sigprocmask(SIG_BLOCK, &mask, NULL); /* except SIGSEGV */ } #endif @@ -65,6 +65,7 @@ if (bufsz>len) {strncat(buf, func, bufsz-len-1); len = strlen(buf);} /* print error message */ write (STDERR_FILENO, buf+3, len-3); + write (STDERR_FILENO, "()\n", 3); #if defined(HAVE_SYSLOG) if ((LogFile = socket(AF_UNIX, SOCK_DGRAM, 0)) != -1) { @@ -81,15 +82,15 @@ #endif #ifdef _POSIX_SOURCE - { /* Make sure the default handler is associated with SIGABRT */ + { /* Make sure the default handler is associated with SIGSEGV */ struct sigaction sa; memset(&sa, 0, sizeof(struct sigaction)); sigfillset(&sa.sa_mask); /* Block all signals */ sa.sa_flags = 0; sa.sa_handler = SIG_DFL; - sigaction(SIGABRT, &sa, NULL); - (void)kill(getpid(), SIGABRT); + sigaction(SIGSEGV, &sa, NULL); + (void)kill(getpid(), SIGSEGV); } #endif _exit(127);