Blame SOURCES/cvs-1.11.19-abortabort.patch

814382
--- cvs-1.11.19/src/server.c.old3	2004-09-24 21:59:08.000000000 +0200
814382
+++ cvs-1.11.19/src/server.c	2005-02-28 13:09:22.000000000 +0100
814382
@@ -4900,6 +4900,15 @@
814382
     int status;
814382
     int save_noexec;
814382
 
814382
+#ifndef DONT_USE_SIGNALS
814382
+#ifdef SIGABRT
814382
+    /* Need to deregister the SIGABRT handler so that if an assertion
814382
+       fails and calls abort while we're cleaning up, we won't
814382
+       infinitely recurse in the cleanup function. */
814382
+    SIG_deregister(SIGABRT, server_cleanup);
814382
+#endif
814382
+#endif /* !DONT_USE_SIGNALS */
814382
+
814382
     if (buf_to_net != NULL)
814382
     {
814382
 	/* Since we're done, go ahead and put BUF_TO_NET back into blocking
814382
--- cvs-1.11.19/src/main.c.old3	2005-02-03 15:50:51.000000000 +0100
814382
+++ cvs-1.11.19/src/main.c	2005-02-28 13:02:52.000000000 +0100
814382
@@ -341,6 +341,13 @@
814382
     const char *name;
814382
     char temp[10];
814382
 
814382
+#ifdef SIGABRT
814382
+    /* Need to deregister the SIGABRT handler so that if an assertion
814382
+       fails and calls abort while we're cleaning up, we won't
814382
+       infinitely recurse in the cleanup function. */
814382
+    SIG_deregister(SIGABRT, main_cleanup);
814382
+#endif
814382
+
814382
     switch (sig)
814382
     {
814382
 #ifdef SIGABRT
814382
--- cvs-1.11.19/src/rcs.c.old3	2005-01-31 23:15:08.000000000 +0100
814382
+++ cvs-1.11.19/src/rcs.c	2005-02-28 13:06:06.000000000 +0100
814382
@@ -8314,6 +8314,15 @@
814382
        called from a signal handler, so we don't know whether the
814382
        files got created.  */
814382
 
814382
+#ifndef DONT_USE_SIGNALS
814382
+#ifdef SIGABRT
814382
+    /* Need to deregister the SIGABRT handler so that if an assertion
814382
+       fails and calls abort while we're cleaning up, we won't
814382
+       infinitely recurse in the cleanup function. */
814382
+    SIG_deregister(SIGABRT, rcs_cleanup);
814382
+#endif
814382
+#endif /* !DONT_USE_SIGNALS */
814382
+
814382
     /* FIXME: Do not perform buffered I/O from an interrupt handler like
814382
        this (via error).  However, I'm leaving the error-calling code there
814382
        in the hope that on the rare occasion the error call is actually made
814382
--- cvs-1.11.19/src/patch.c.old3	2005-01-31 23:15:02.000000000 +0100
814382
+++ cvs-1.11.19/src/patch.c	2005-02-28 13:04:16.000000000 +0100
814382
@@ -796,6 +796,15 @@
814382
        called from a signal handler, without SIG_begincrsect, so
814382
        we don't know whether the files got created.  */
814382
 
814382
+#ifndef DONT_USE_SIGNALS
814382
+#ifdef SIGABRT
814382
+    /* Need to deregister the SIGABRT handler so that if an assertion
814382
+       fails and calls abort while we're cleaning up, we won't
814382
+       infinitely recurse in the cleanup function. */
814382
+    SIG_deregister(SIGABRT, patch_cleanup);
814382
+#endif
814382
+#endif /* !DONT_USE_SIGNALS */
814382
+
814382
     if (tmpfile1 != NULL)
814382
     {
814382
 	if (unlink_file (tmpfile1) < 0