diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-02-03 01:47:56 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-02-03 01:47:56 +0000 |
commit | 0aa84906936bd99ea8627a24b8ad2fdeedc7e928 (patch) | |
tree | af2d6fa3dabfb8b7aafd8ca7a33ddc872da1758c /runit | |
parent | 64392905ef3f17db48e0e16e6d0b232f95e301a7 (diff) | |
download | busybox-w32-0aa84906936bd99ea8627a24b8ad2fdeedc7e928.tar.gz busybox-w32-0aa84906936bd99ea8627a24b8ad2fdeedc7e928.tar.bz2 busybox-w32-0aa84906936bd99ea8627a24b8ad2fdeedc7e928.zip |
sigset_t blocked_sigset is too big for static (128 bytes)
Diffstat (limited to 'runit')
-rw-r--r-- | runit/svlogd.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/runit/svlogd.c b/runit/svlogd.c index f0e9aaf6f..0f17eec7b 100644 --- a/runit/svlogd.c +++ b/runit/svlogd.c | |||
@@ -54,7 +54,7 @@ static smallint tmaxflag; | |||
54 | static char repl; | 54 | static char repl; |
55 | static const char *replace = ""; | 55 | static const char *replace = ""; |
56 | 56 | ||
57 | sigset_t blocked_sigset; | 57 | static sigset_t *blocked_sigset; |
58 | static iopause_fd input; | 58 | static iopause_fd input; |
59 | static int fl_flag_0; | 59 | static int fl_flag_0; |
60 | 60 | ||
@@ -646,9 +646,9 @@ static int buffer_pread(int fd, char *s, unsigned len, struct taia *now) | |||
646 | } | 646 | } |
647 | 647 | ||
648 | while (1) { | 648 | while (1) { |
649 | sigprocmask(SIG_UNBLOCK, &blocked_sigset, NULL); | 649 | sigprocmask(SIG_UNBLOCK, blocked_sigset, NULL); |
650 | iopause(&input, 1, &trotate, now); | 650 | iopause(&input, 1, &trotate, now); |
651 | sigprocmask(SIG_BLOCK, &blocked_sigset, NULL); | 651 | sigprocmask(SIG_BLOCK, blocked_sigset, NULL); |
652 | i = ndelay_read(fd, s, len); | 652 | i = ndelay_read(fd, s, len); |
653 | if (i >= 0) break; | 653 | if (i >= 0) break; |
654 | if (errno != EAGAIN) { | 654 | if (errno != EAGAIN) { |
@@ -748,6 +748,7 @@ static void logmatch(struct logdir *ld) | |||
748 | 748 | ||
749 | int svlogd_main(int argc, char **argv) | 749 | int svlogd_main(int argc, char **argv) |
750 | { | 750 | { |
751 | sigset_t ss; | ||
751 | char *r,*l,*b; | 752 | char *r,*l,*b; |
752 | ssize_t stdin_cnt = 0; | 753 | ssize_t stdin_cnt = 0; |
753 | int i; | 754 | int i; |
@@ -801,12 +802,13 @@ int svlogd_main(int argc, char **argv) | |||
801 | * with the same stdin */ | 802 | * with the same stdin */ |
802 | fl_flag_0 = fcntl(0, F_GETFL, 0); | 803 | fl_flag_0 = fcntl(0, F_GETFL, 0); |
803 | 804 | ||
804 | sigemptyset(&blocked_sigset); | 805 | blocked_sigset = &ss; |
805 | sigaddset(&blocked_sigset, SIGTERM); | 806 | sigemptyset(&ss); |
806 | sigaddset(&blocked_sigset, SIGCHLD); | 807 | sigaddset(&ss, SIGTERM); |
807 | sigaddset(&blocked_sigset, SIGALRM); | 808 | sigaddset(&ss, SIGCHLD); |
808 | sigaddset(&blocked_sigset, SIGHUP); | 809 | sigaddset(&ss, SIGALRM); |
809 | sigprocmask(SIG_BLOCK, &blocked_sigset, NULL); | 810 | sigaddset(&ss, SIGHUP); |
811 | sigprocmask(SIG_BLOCK, &ss, NULL); | ||
810 | sig_catch(SIGTERM, sig_term_handler); | 812 | sig_catch(SIGTERM, sig_term_handler); |
811 | sig_catch(SIGCHLD, sig_child_handler); | 813 | sig_catch(SIGCHLD, sig_child_handler); |
812 | sig_catch(SIGALRM, sig_alarm_handler); | 814 | sig_catch(SIGALRM, sig_alarm_handler); |