diff options
Diffstat (limited to 'package/busybox/busybox-1.10.2-hush.patch')
-rw-r--r-- | package/busybox/busybox-1.10.2-hush.patch | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/package/busybox/busybox-1.10.2-hush.patch b/package/busybox/busybox-1.10.2-hush.patch new file mode 100644 index 000000000..8d65a3512 --- /dev/null +++ b/package/busybox/busybox-1.10.2-hush.patch @@ -0,0 +1,57 @@ +--- 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 + |