summaryrefslogtreecommitdiffstats
path: root/syslogd.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2007-07-25 07:07:16 +0000
committerRainer Gerhards <rgerhards@adiscon.com>2007-07-25 07:07:16 +0000
commit2b487ceb72281af8f125babdd8128101f93d792e (patch)
tree7880217130b5bbedb9d079f2f754c3406048ee91 /syslogd.c
parentb6854528e79a94c6604fac6c9ad31b307d9968fe (diff)
downloadrsyslog-2b487ceb72281af8f125babdd8128101f93d792e.tar.gz
rsyslog-2b487ceb72281af8f125babdd8128101f93d792e.tar.xz
rsyslog-2b487ceb72281af8f125babdd8128101f93d792e.zip
fixed a bug that caused rsyslogd to segfault on exit (and probably also on
HUP), when there was an unsent message in a selector that required forwarding and the dns lookup failed for that selector (yes, it was pretty unlikely to happen;)) thanks to varmojfekoj <varmojfekoj@gmail.com> for the patch
Diffstat (limited to 'syslogd.c')
-rw-r--r--syslogd.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/syslogd.c b/syslogd.c
index de588412..45423b36 100644
--- a/syslogd.c
+++ b/syslogd.c
@@ -4100,7 +4100,11 @@ static void freeSelectors(void)
f = Files;
while (f != NULL) {
/* flush any pending output */
- if (f->f_prevcount) {
+ /* TODO: the output module must handle this internally in the
+ * future - implement it when moving f_type out of selector_t
+ * rgerhards, 2007-07-24
+ */
+ if(f->f_type != F_FORW_UNKN && f->f_prevcount) {
fprintlog(f);
}