Magellan Linux

Contents of /trunk/busybox/patches/busybox-1.10.2-hush.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 626 - (show annotations) (download)
Sat May 31 10:33:24 2008 UTC (15 years, 11 months ago) by niro
File size: 1310 byte(s)
-added more official fixes

1 --- busybox-1.10.2/shell/hush.c Sat Apr 19 05:50:31 2008
2 +++ busybox-1.10.2-hush/shell/hush.c Mon May 26 00:32:40 2008
3 @@ -699,9 +699,18 @@
4 BLTIN(NULL, NULL, NULL)
5 };
6
7 +/* Signals are grouped, we handle them in batches */
8 +static void set_misc_sighandler(void (*handler)(int))
9 +{
10 + bb_signals(0
11 + + (1 << SIGINT)
12 + + (1 << SIGQUIT)
13 + + (1 << SIGTERM)
14 + , handler);
15 +}
16 +
17 #if ENABLE_HUSH_JOB
18
19 -/* Signals are grouped, we handle them in batches */
20 static void set_fatal_sighandler(void (*handler)(int))
21 {
22 bb_signals(0
23 @@ -725,14 +734,6 @@
24 + (1 << SIGTTOU)
25 , handler);
26 }
27 -static void set_misc_sighandler(void (*handler)(int))
28 -{
29 - bb_signals(0
30 - + (1 << SIGINT)
31 - + (1 << SIGQUIT)
32 - + (1 << SIGTERM)
33 - , handler);
34 -}
35 /* SIGCHLD is special and handled separately */
36
37 static void set_every_sighandler(void (*handler)(int))
38 @@ -815,7 +816,6 @@
39
40 #define set_fatal_sighandler(handler) ((void)0)
41 #define set_jobctrl_sighandler(handler) ((void)0)
42 -#define set_misc_sighandler(handler) ((void)0)
43 #define hush_exit(e) exit(e)
44
45 #endif /* JOB */
46 @@ -3907,8 +3907,10 @@
47 /* give up */
48 interactive_fd = 0;
49 }
50 - if (interactive_fd)
51 + if (interactive_fd) {
52 fcntl(interactive_fd, F_SETFD, FD_CLOEXEC);
53 + set_misc_sighandler(SIG_IGN);
54 + }
55 }
56 #endif
57