]>
Commit | Line | Data |
---|---|---|
46c5dd4b AG |
1 | To: vim-dev@vim.org |
2 | Subject: Patch 6.3.050 | |
3 | Fcc: outbox | |
4 | From: Bram Moolenaar <Bram@moolenaar.net> | |
5 | Mime-Version: 1.0 | |
6 | Content-Type: text/plain; charset=ISO-8859-1 | |
7 | Content-Transfer-Encoding: 8bit | |
8 | ------------ | |
9 | ||
10 | Patch 6.3.050 | |
11 | Problem: When SIGHUP is received while busy exiting, non-reentrant | |
12 | functions such as free() may cause a crash. | |
13 | Solution: Ignore SIGHUP when exiting because of an error. (Scott Anderson) | |
14 | Files: src/misc1.c, src/main.c | |
15 | ||
16 | ||
17 | *** ../vim-6.3.049/src/misc1.c Sat Sep 18 20:28:07 2004 | |
18 | --- src/misc1.c Thu Dec 16 12:13:01 2004 | |
19 | *************** | |
20 | *** 7544,7549 **** | |
21 | --- 7544,7556 ---- | |
22 | void | |
23 | prepare_to_exit() | |
24 | { | |
25 | + #if defined(SIGHUP) && defined(SIG_IGN) | |
26 | + /* Ignore SIGHUP, because a dropped connection causes a read error, which | |
27 | + * makes Vim exit and then handling SIGHUP causes various reentrance | |
28 | + * problems. */ | |
29 | + signal(SIGHUP, SIG_IGN); | |
30 | + #endif | |
31 | + | |
32 | #ifdef FEAT_GUI | |
33 | if (gui.in_use) | |
34 | { | |
35 | *** ../vim-6.3.049/src/main.c Mon Aug 30 19:46:07 2004 | |
36 | --- src/main.c Thu Dec 16 12:09:56 2004 | |
37 | *************** | |
38 | *** 2193,2198 **** | |
39 | --- 2193,2205 ---- | |
40 | getout_preserve_modified(exitval) | |
41 | int exitval; | |
42 | { | |
43 | + # if defined(SIGHUP) && defined(SIG_IGN) | |
44 | + /* Ignore SIGHUP, because a dropped connection causes a read error, which | |
45 | + * makes Vim exit and then handling SIGHUP causes various reentrance | |
46 | + * problems. */ | |
47 | + signal(SIGHUP, SIG_IGN); | |
48 | + # endif | |
49 | + | |
50 | ml_close_notmod(); /* close all not-modified buffers */ | |
51 | ml_sync_all(FALSE, FALSE); /* preserve all swap files */ | |
52 | ml_close_all(FALSE); /* close all memfiles, without deleting */ | |
53 | *** ../vim-6.3.049/src/version.c Thu Dec 16 12:05:19 2004 | |
54 | --- src/version.c Thu Dec 16 12:33:16 2004 | |
55 | *************** | |
56 | *** 643,644 **** | |
57 | --- 643,646 ---- | |
58 | { /* Add new patch number below this line */ | |
59 | + /**/ | |
60 | + 50, | |
61 | /**/ | |
62 | ||
63 | -- | |
64 | Ed's Radiator Shop: The Best Place in Town to Take a Leak. | |
65 | ||
66 | /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ | |
67 | /// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ | |
68 | \\\ Project leader for A-A-P -- http://www.A-A-P.org /// | |
69 | \\\ Buy LOTR 3 and help AIDS victims -- http://ICCF.nl/lotr.html /// |