rev |
line source |
al@20586
|
1 --- cvs-1.11.19/src/server.c.old3 2004-09-24 21:59:08.000000000 +0200
|
al@20586
|
2 +++ cvs-1.11.19/src/server.c 2005-02-28 13:09:22.000000000 +0100
|
al@20586
|
3 @@ -4900,6 +4900,15 @@
|
al@20586
|
4 int status;
|
al@20586
|
5 int save_noexec;
|
al@20586
|
6
|
al@20586
|
7 +#ifndef DONT_USE_SIGNALS
|
al@20586
|
8 +#ifdef SIGABRT
|
al@20586
|
9 + /* Need to deregister the SIGABRT handler so that if an assertion
|
al@20586
|
10 + fails and calls abort while we're cleaning up, we won't
|
al@20586
|
11 + infinitely recurse in the cleanup function. */
|
al@20586
|
12 + SIG_deregister(SIGABRT, server_cleanup);
|
al@20586
|
13 +#endif
|
al@20586
|
14 +#endif /* !DONT_USE_SIGNALS */
|
al@20586
|
15 +
|
al@20586
|
16 if (buf_to_net != NULL)
|
al@20586
|
17 {
|
al@20586
|
18 /* Since we're done, go ahead and put BUF_TO_NET back into blocking
|
al@20586
|
19 --- cvs-1.11.19/src/main.c.old3 2005-02-03 15:50:51.000000000 +0100
|
al@20586
|
20 +++ cvs-1.11.19/src/main.c 2005-02-28 13:02:52.000000000 +0100
|
al@20586
|
21 @@ -341,6 +341,13 @@
|
al@20586
|
22 const char *name;
|
al@20586
|
23 char temp[10];
|
al@20586
|
24
|
al@20586
|
25 +#ifdef SIGABRT
|
al@20586
|
26 + /* Need to deregister the SIGABRT handler so that if an assertion
|
al@20586
|
27 + fails and calls abort while we're cleaning up, we won't
|
al@20586
|
28 + infinitely recurse in the cleanup function. */
|
al@20586
|
29 + SIG_deregister(SIGABRT, main_cleanup);
|
al@20586
|
30 +#endif
|
al@20586
|
31 +
|
al@20586
|
32 switch (sig)
|
al@20586
|
33 {
|
al@20586
|
34 #ifdef SIGABRT
|
al@20586
|
35 --- cvs-1.11.19/src/rcs.c.old3 2005-01-31 23:15:08.000000000 +0100
|
al@20586
|
36 +++ cvs-1.11.19/src/rcs.c 2005-02-28 13:06:06.000000000 +0100
|
al@20586
|
37 @@ -8314,6 +8314,15 @@
|
al@20586
|
38 called from a signal handler, so we don't know whether the
|
al@20586
|
39 files got created. */
|
al@20586
|
40
|
al@20586
|
41 +#ifndef DONT_USE_SIGNALS
|
al@20586
|
42 +#ifdef SIGABRT
|
al@20586
|
43 + /* Need to deregister the SIGABRT handler so that if an assertion
|
al@20586
|
44 + fails and calls abort while we're cleaning up, we won't
|
al@20586
|
45 + infinitely recurse in the cleanup function. */
|
al@20586
|
46 + SIG_deregister(SIGABRT, rcs_cleanup);
|
al@20586
|
47 +#endif
|
al@20586
|
48 +#endif /* !DONT_USE_SIGNALS */
|
al@20586
|
49 +
|
al@20586
|
50 /* FIXME: Do not perform buffered I/O from an interrupt handler like
|
al@20586
|
51 this (via error). However, I'm leaving the error-calling code there
|
al@20586
|
52 in the hope that on the rare occasion the error call is actually made
|
al@20586
|
53 --- cvs-1.11.19/src/patch.c.old3 2005-01-31 23:15:02.000000000 +0100
|
al@20586
|
54 +++ cvs-1.11.19/src/patch.c 2005-02-28 13:04:16.000000000 +0100
|
al@20586
|
55 @@ -796,6 +796,15 @@
|
al@20586
|
56 called from a signal handler, without SIG_begincrsect, so
|
al@20586
|
57 we don't know whether the files got created. */
|
al@20586
|
58
|
al@20586
|
59 +#ifndef DONT_USE_SIGNALS
|
al@20586
|
60 +#ifdef SIGABRT
|
al@20586
|
61 + /* Need to deregister the SIGABRT handler so that if an assertion
|
al@20586
|
62 + fails and calls abort while we're cleaning up, we won't
|
al@20586
|
63 + infinitely recurse in the cleanup function. */
|
al@20586
|
64 + SIG_deregister(SIGABRT, patch_cleanup);
|
al@20586
|
65 +#endif
|
al@20586
|
66 +#endif /* !DONT_USE_SIGNALS */
|
al@20586
|
67 +
|
al@20586
|
68 if (tmpfile1 != NULL)
|
al@20586
|
69 {
|
al@20586
|
70 if (unlink_file (tmpfile1) < 0
|