58 lines
1.3 KiB
Diff
58 lines
1.3 KiB
Diff
--- busybox-1.10.2/shell/hush.c Sat Apr 19 05:50:31 2008
|
|
+++ busybox-1.10.2-hush/shell/hush.c Mon May 26 00:32:40 2008
|
|
@@ -699,9 +699,18 @@
|
|
BLTIN(NULL, NULL, NULL)
|
|
};
|
|
|
|
+/* Signals are grouped, we handle them in batches */
|
|
+static void set_misc_sighandler(void (*handler)(int))
|
|
+{
|
|
+ bb_signals(0
|
|
+ + (1 << SIGINT)
|
|
+ + (1 << SIGQUIT)
|
|
+ + (1 << SIGTERM)
|
|
+ , handler);
|
|
+}
|
|
+
|
|
#if ENABLE_HUSH_JOB
|
|
|
|
-/* Signals are grouped, we handle them in batches */
|
|
static void set_fatal_sighandler(void (*handler)(int))
|
|
{
|
|
bb_signals(0
|
|
@@ -725,14 +734,6 @@
|
|
+ (1 << SIGTTOU)
|
|
, handler);
|
|
}
|
|
-static void set_misc_sighandler(void (*handler)(int))
|
|
-{
|
|
- bb_signals(0
|
|
- + (1 << SIGINT)
|
|
- + (1 << SIGQUIT)
|
|
- + (1 << SIGTERM)
|
|
- , handler);
|
|
-}
|
|
/* SIGCHLD is special and handled separately */
|
|
|
|
static void set_every_sighandler(void (*handler)(int))
|
|
@@ -815,7 +816,6 @@
|
|
|
|
#define set_fatal_sighandler(handler) ((void)0)
|
|
#define set_jobctrl_sighandler(handler) ((void)0)
|
|
-#define set_misc_sighandler(handler) ((void)0)
|
|
#define hush_exit(e) exit(e)
|
|
|
|
#endif /* JOB */
|
|
@@ -3907,8 +3907,10 @@
|
|
/* give up */
|
|
interactive_fd = 0;
|
|
}
|
|
- if (interactive_fd)
|
|
+ if (interactive_fd) {
|
|
fcntl(interactive_fd, F_SETFD, FD_CLOEXEC);
|
|
+ set_misc_sighandler(SIG_IGN);
|
|
+ }
|
|
}
|
|
#endif
|
|
|