summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2008-03-29 12:15:13 +0100
committerMichael Biebl <biebl@debian.org>2008-03-29 12:15:13 +0100
commit9b68e0f3a37ec87dff0f24665a89cd36c8adcb72 (patch)
tree248494aafae9aa9cd54b0fd628fde0558dfb5f20
parent4f9e746bd83a363f2f66a1f31ed9fd92f614754e (diff)
downloadrsyslog-9b68e0f3a37ec87dff0f24665a89cd36c8adcb72.tar.gz
Imported Upstream version 2.0.3upstream/2.0.3
-rw-r--r--ChangeLog10
-rwxr-xr-xconfigure20
-rw-r--r--configure.ac2
-rw-r--r--doc/bugs.html39
-rw-r--r--doc/features.html34
-rw-r--r--doc/property_replacer.html27
-rw-r--r--doc/rsconf1_escapecontrolcharactersonreceive.html5
-rw-r--r--doc/status.html17
-rw-r--r--module-template.h2
-rw-r--r--modules.c12
-rw-r--r--omfile.c5
-rw-r--r--rfc3195d.83
-rw-r--r--rklogd.83
-rw-r--r--rsyslog.conf.54
-rw-r--r--rsyslogd.83
-rw-r--r--syslogd.c3
16 files changed, 90 insertions, 99 deletions
diff --git a/ChangeLog b/ChangeLog
index 5e81354..65d683a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,14 @@
---------------------------------------------------------------------------
+Version 2.0.3 STABLE (rgerhards), 2008-03-12
+- bugfix: setting for $EscapeCopntrolCharactersOnReceive was not
+ properly initialized
+- bugfix: resolved potential segfault condition on HUP (extremely
+ unlikely to happen in practice), for details see tracker:
+ http://bugzilla.adiscon.com/show_bug.cgi?id=38
+- improved the man pages a bit - thanks to Michael Biebl for the patch
+- bugfix: not properly initialized data could cause several segfaults if
+ there were errors in the config file - thanks to varmojfekoj for the patch
+---------------------------------------------------------------------------
Version 2.0.2 STABLE (rgerhards), 2008-02-12
- fixed a bug that could cause invalid string handling via strerror_r
varmojfekoj provided the patch - many thanks!
diff --git a/configure b/configure
index 3fc9ba5..bd4f7bb 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for rsyslog 2.0.2.
+# Generated by GNU Autoconf 2.61 for rsyslog 2.0.3.
#
# Report bugs to <rsyslog@lists.adiscon.com.>.
#
@@ -728,8 +728,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='rsyslog'
PACKAGE_TARNAME='rsyslog'
-PACKAGE_VERSION='2.0.2'
-PACKAGE_STRING='rsyslog 2.0.2'
+PACKAGE_VERSION='2.0.3'
+PACKAGE_STRING='rsyslog 2.0.3'
PACKAGE_BUGREPORT='rsyslog@lists.adiscon.com.'
ac_unique_file="syslogd.c"
@@ -1409,7 +1409,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures rsyslog 2.0.2 to adapt to many kinds of systems.
+\`configure' configures rsyslog 2.0.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1479,7 +1479,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of rsyslog 2.0.2:";;
+ short | recursive ) echo "Configuration of rsyslog 2.0.3:";;
esac
cat <<\_ACEOF
@@ -1593,7 +1593,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-rsyslog configure 2.0.2
+rsyslog configure 2.0.3
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1607,7 +1607,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by rsyslog $as_me 2.0.2, which was
+It was created by rsyslog $as_me 2.0.3, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
@@ -2297,7 +2297,7 @@ fi
# Define the identity of the package.
PACKAGE='rsyslog'
- VERSION='2.0.2'
+ VERSION='2.0.3'
cat >>confdefs.h <<_ACEOF
@@ -25284,7 +25284,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by rsyslog $as_me 2.0.2, which was
+This file was extended by rsyslog $as_me 2.0.3, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -25337,7 +25337,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-rsyslog config.status 2.0.2
+rsyslog config.status 2.0.3
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff --git a/configure.ac b/configure.ac
index bb66bfd..15c73da 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
-AC_INIT([rsyslog],[2.0.2],[rsyslog@lists.adiscon.com.])
+AC_INIT([rsyslog],[2.0.3],[rsyslog@lists.adiscon.com.])
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([syslogd.c])
AC_CONFIG_HEADERS([config.h])
diff --git a/doc/bugs.html b/doc/bugs.html
index 8f77560..a12c43f 100644
--- a/doc/bugs.html
+++ b/doc/bugs.html
@@ -4,37 +4,14 @@
</head>
<body>
<h1>rsyslog bugs and annoyances</h1>
-<p><b>This page lists the known bugs rsyslog has to offer.</b> Please note that
-we also have a
-<a href="http://sourceforge.net/tracker/?atid=696552&group_id=123448&func=browse">
-bug tracker at sourceforge.net</a>. This list here contains more architectural
-things while the bug tracker most often lists things that you will actually
-experience. Please be sure to visit the bug tracker in addition to this list
-here.</p>
-<p>This list has last been updated on 2007-07-30 by
+<p><b>This page lists the known bugs rsyslog has to offer.</b>&nbsp; It lists
+old and esoteric bugs. A live list of bugs is contained in our bugzilla. <b>
+<font color="#FF0000">Please visit </font><a href="http://www.rsyslog.com/bugs">
+<font color="#FF0000">http://www.rsyslog.com/bugs</font></a></b> to see what we
+have. There, you can also open your own bug report if you think you found one.</p>
+<p>This list has last been updated on 2008-02-12 by
<a href="http://www.adiscon.com/en/people/rainer-gerhards.php">Rainer Gerhards</a>.</p>
<h1>rsyslogd</h1>
-<h2>stability in multithreaded mode</h2>
-<p>We have some reports that rsyslogd, if compiled with multi-threading enabled,
-segfaults in some environments. We are actively looking at fixing this issue,
-but as it does not occur in our lab environment, that unfortunately takes some
-time. If you experience a segfault, please report it. As a work-around, you can
-compile rsyslog without multi-threading:</p>
-<p>./configure --disable-pthreads<br>
-make clean<br>
-make<br>
-make install</p>
-<p>This somewhat reduces the ability to handle large message bursts, but even in
-single-threaded mode rsyslogd offers great performance (just think that stock
-sysklogd has always been using a single thread, only).</p>
-<h2>forwarding remotely received messages</h2>
-<p>Sysklogd does not forward remotely received messages to other network
-destination except when the -h option is given. This code is currently defunct.
-No matter if -h is specified or not, messages are ALWAYS forwarded. It is
-currently under review if the sysklogd's functionality is actually needed.
-Please see my
-<a href="http://rgerhards.blogspot.com/2007/07/on-syslogd-h-option.html">blog
-post on this topic</a> for further detail.</p>
<h2>EQUALLY-NAMED TEMPLATES</h2>
<p>If multiple templates with the SAME name are created, all but the
first definition is IGNORED. So you can NOT (yet) replace a
@@ -46,10 +23,6 @@ names...).</p>
<p>This format is actually not 100% compatible with stock syslogd - the
date is missing. Will be fixed soon and can also be fixed just via
the proper template. Anyone up for this? ;)</p>
-<h2>SIGPIPE HANDLING</h2>
-<p>Currently, SIGPIPE is ignored. This is necessary to handle broken TCP
- connections. We should further look into this issue and see which other
- ways exist to handle the situation.</p>
<h2>MULTIPLE INSTANCES</h2>
<p>If multiple instances are running on a single machine, the one with
the -r switch must start first. Also, UDP-based syslog forwarding between the
diff --git a/doc/features.html b/doc/features.html
index 2899cd7..c71194d 100644
--- a/doc/features.html
+++ b/doc/features.html
@@ -53,36 +53,12 @@ is going on, you can also subscribe to the <a href="http://lists.adiscon.net/mai
<p>The list below is something like a repository of ideas we'd like to
implement. Features on this list are typically NOT scheduled for immediate
inclusion. We maintain a
-<a href="http://sourceforge.net/tracker/?group_id=123448&atid=696555">feature
-request tracker at sourceforge.net</a>. This tracker has things typically within
+<a href="http://bugzilla.adiscon.com/rsyslog-feature.html">feature
+request tracker at our bugzilla</a>. This tracker has things typically within
reach of implementation. Users are encouraged to submit feature requests there
-(or via our forums). If we like them but they look quite long-lived (aka &quot;not
-soon to be implemented&quot;), they will possibly be migrated to this list here and
-at some time moved back to the sourceforge tracker.</p>
-<ul>
- <li>create a plug-in-interface - we are very close to this. A neat interface is
- already used internally for output modules and the MySQL module already
- works as a plug-in. However, no interface definition is yet formally
- published.<li>implement native email-functionality in
- selector (probably best done as a plug-in)<li>port it to more *nix variants
- (eg AIX and HP UX) - this needs volunteers with access to those machines and
- knowledge<li>provide an on-disk queue for syslog messages; should be
- combined with reliable delivery to the next hop<li>support for native SSL enryption of plain tcp syslog sessions. This will
- most probably happen based on syslog-transport-tls.<li>even more enhanced multi-threading,
- with a message queue for each action (when implementing this, search
- for CHECKMULTIQUEUE comments in the source - they already contain hints of
- what to look at). Some detail information on this can already be found in
- <a href="http://rgerhards.blogspot.com/2007/08/syslog-worker-pools-future-hardware-and.html">
- Rainer's blog</a>.<li>pcre filtering - maybe (depending on feedback)&nbsp; - simple regex already
- partly added. So far, this seems sufficient so that there is no urgent need
- to do pcre<li>support for <a href="http://www.monitorware.com/Common/en/glossary/rfc3195.php">RFC 3195</a> as a sender - this is currently unlikely to happen, because there is no real
- demand for it. Any work on RFC 3195 has been suspend until we see some real
- interest in it.&nbsp; It is probably much better to use TCP-based syslog,
- which is interoperable with a large number of applications. You may also
- read my blog post on the future of liblogging, which contains interesting
- information about the
- <a href="http://rgerhards.blogspot.com/2007/09/where-is-liblogging-heading-to.html">
- future of RFC 3195 in rsyslog</a>.</ul>
+(or via our forums). <b>Please note that rsyslog v2 is feature-complete. New
+features will be implemented in the v3 branch only. </b>Version 3 already has a
+number of very exciting additional features.</p>
<p>To see when each feature was added, see the
<a href="http://www.rsyslog.com/Topic4.phtml">rsyslog change log</a> (online
only).</p>
diff --git a/doc/property_replacer.html b/doc/property_replacer.html
index 3df2fd0..4b98774 100644
--- a/doc/property_replacer.html
+++ b/doc/property_replacer.html
@@ -125,14 +125,29 @@ are defined:</p>
<tr><td><b>date-mysql</b></td><td>format as mysql date</td></tr>
<tr><td><b>date-rfc3164</b></td><td>format as RFC 3164 date</td></tr>
<tr><td><b>date-rfc3339</b></td><td>format as RFC 3339 date</td></tr>
-<tr><td><b>escape-cc</b></td><td>replace control characters (ASCII value 127 and
- values less then 32) with an escape sequence. The sequnce is &quot;#&lt;charval&gt;&quot;
+<tr>
+ <td><b>escape-cc</b></td><td>replace control characters (ASCII value 127 and
+ values less then 32) with an escape sequence. The sequence is &quot;#&lt;charval&gt;&quot;
where charval is the 3-digit decimal value of the control character. For
- example, a tabulator would be replaced by &quot;#009&quot;.</td></tr>
-<tr><td><b>space-cc</b></td><td>replace control characters by spaces</td></tr>
-<tr><td><b>drop-cc</b></td><td>drop control characters - the resulting string
+ example, a tabulator would be replaced by &quot;#009&quot;.<br>
+ Note: using this option requires that
+ <a href="../../rsyslog/doc/rsconf1_escapecontrolcharactersonreceive.html">$EscapeControlCharactersOnReceive</a>
+ is set to off.</td>
+</tr>
+<tr>
+ <td><b>space-cc</b></td><td>replace control characters by spaces<br>
+ Note: using this option requires that
+ <a href="../../rsyslog/doc/rsconf1_escapecontrolcharactersonreceive.html">$EscapeControlCharactersOnReceive</a>
+ is set to off.</td>
+</tr>
+<tr>
+ <td><b>drop-cc</b></td><td>drop control characters - the resulting string
will neither contain control characters, escape sequences nor any other
- replacement character like space.</td></tr>
+ replacement character like space.<br>
+ Note: using this option requires that
+ <a href="../../rsyslog/doc/rsconf1_escapecontrolcharactersonreceive.html">$EscapeControlCharactersOnReceive</a>
+ is set to off.</td>
+</tr>
</table>
<h2>Further Links</h2>
diff --git a/doc/rsconf1_escapecontrolcharactersonreceive.html b/doc/rsconf1_escapecontrolcharactersonreceive.html
index a885511..2691773 100644
--- a/doc/rsconf1_escapecontrolcharactersonreceive.html
+++ b/doc/rsconf1_escapecontrolcharactersonreceive.html
@@ -14,6 +14,11 @@
(like Japanese, Chinese and Korean)</li>
<li>turning on this option destroys digital signatures if such exists inside
the message</li>
+ <li>if turned on, the drop-cc, space-cc and escape-cc
+ <a href="property_replacer.html">property replacer</a> options do not work
+ as expected because control characters are already removed upon message
+ reception. If you intend to use these property replacer options, you must
+ turn off $EscapeControlCharactersOnReceive.</li>
</ul>
<p><b>Sample:</b></p>
<p><code><b>$EscapeControlCharactersOnReceive on</b></code></p>
diff --git a/doc/status.html b/doc/status.html
index 503892b..90cb44d 100644
--- a/doc/status.html
+++ b/doc/status.html
@@ -4,17 +4,18 @@
</head>
<body>
<h2>rsyslog status page</h2>
-<p>This page reflects the status as of 2008-02-12.</p>
+<p>This page reflects the status as of 2008-03-12.</p>
<h2>Current Releases</h2>
-<p><b>development:</b> 3.11.0 -
-<a href="http://www.rsyslog.com/Article169.phtml">change log</a> -
-<a href="http://www.rsyslog.com/Downloads-index-req-getit-lid-76.phtml">download</a></p>
-<p><b><font color="#FF0000"><a href="v3compatibility.html">Be sure to read the
-rsyslog v3 compatibility document!</a></font></b><br>
+<p><b>development:</b> 3.12.1 -
+<a href="http://www.rsyslog.com/Article187.phtml">change
+log</a> -
+<a href="http://www.rsyslog.com/Downloads-index-req-getit-lid-85.phtml">download</a></p>
+<p><b><font color="#ff0000"><a href="v3compatibility.html">If you used version 2, be sure to read the rsyslog v3
+compatibility document!</a></font></b><br>
Documentation for 3.x is currently sparse. If you need assistance, please
<a href="http://www.rsyslog.com/PNphpBB2.phtml">post in the rsyslog forums</a>!</p>
-<p><b>stable:</b> 2.0.2 - <a href="http://www.rsyslog.com/Article171.phtml">change log</a> -
-<a href="http://www.rsyslog.com/Downloads-index-req-getit-lid-77.phtml">download</a></p>
+<p><b>stable:</b> 2.0.3 - <a href="http://www.rsyslog.com/Article189.phtml">change log</a> -
+<a href="http://www.rsyslog.com/Downloads-index-req-getit-lid-86.phtml">download</a></p>
<p>&nbsp;(<a href="version_naming.html">How are versions named?</a>)</p>
<h2>Platforms</h2>
<p>Thankfully, a number of folks have begin to build packages and help port
diff --git a/module-template.h b/module-template.h
index 13ae4b8..a5ece4f 100644
--- a/module-template.h
+++ b/module-template.h
@@ -260,7 +260,7 @@ finalize_it:\
*ppOMSR = NULL;\
}\
if(pData != NULL)\
- freeInstance(&pData);\
+ freeInstance(pData);\
}
#define ENDparseSelectorAct \
diff --git a/modules.c b/modules.c
index f04c4a9..406cf32 100644
--- a/modules.c
+++ b/modules.c
@@ -378,6 +378,18 @@ rsRetVal modUnloadAndDestructDynamic(void)
}
}
+ /* Note: the last modules pNext pointer is now invalid
+ * (except if the last module was not touched, what is highly
+ * unlikely. We simply fix this be setting it to NULL. After all,
+ * it is the last module ;). This bug had some severe effects in
+ * v3, but none in v2 because in v2 the list was never again
+ * traversed before a new one was added. But even in v2 it may cause
+ * a segfault if the number of loaded modules changed between HUPs.
+ * rgerhards, 2008-02-26
+ */
+ if(pLoadedModulesLast != NULL)
+ pLoadedModulesLast->pNext = NULL;
+
return iRet;
}
/*
diff --git a/omfile.c b/omfile.c
index cd5e23c..db2ec3e 100644
--- a/omfile.c
+++ b/omfile.c
@@ -344,7 +344,8 @@ static void dynaFileFreeCache(instanceData *pData)
dynaFileDelCacheEntry(pData->dynCache, i, 1);
}
- free(pData->dynCache);
+ if(pData->dynCache != NULL)
+ free(pData->dynCache);
}
@@ -605,7 +606,7 @@ BEGINfreeInstance
CODESTARTfreeInstance
if(pData->bDynamicName) {
dynaFileFreeCache(pData);
- } else
+ } else if(pData->fd != -1)
close(pData->fd);
ENDfreeInstance
diff --git a/rfc3195d.8 b/rfc3195d.8
index 2fef91b..5e4b415 100644
--- a/rfc3195d.8
+++ b/rfc3195d.8
@@ -1,7 +1,7 @@
.\" Copyright 2005 Rainer Gerhards and Adiscon for the rsyslog modifications
.\" Distributed under the GNU General Public License.
.\"
-.TH RSYSLOGD 8 "03 July 2007" "Version 1.14.2 (devel)" "Linux System Administration"
+.TH RSYSLOGD 8 "12 February 2008" "Version 2.0.2" "Linux System Administration"
.SH NAME
rfc3195d \- RFC 3195 listener
.SH SYNOPSIS
@@ -82,4 +82,3 @@ protocol handling.
.PD 0
.TP
Rainer Gerhards <rgerhards@adiscon.com>
-.zZ
diff --git a/rklogd.8 b/rklogd.8
index 0bc7d76..8ef99c2 100644
--- a/rklogd.8
+++ b/rklogd.8
@@ -4,7 +4,7 @@
.\" Sun Nov 19 23:22:21 MET: Martin Schulze: Updates
.\" Mon Aug 19 09:42:08 CDT 1996: Dr. G.W. Wettstein: Updates
.\"
-.TH RKLOGD 8 "03 JULY 2007" "Version 1.14.2 (devel)" "Linux System Administration"
+.TH RKLOGD 8 "12 February 2008" "Version 2.0.2" "Linux System Administration"
.SH NAME
rklogd \- Kernel Log Daemon
.LP
@@ -438,4 +438,3 @@ Roger Maris Cancer Center
.TP
Fargo, ND 58122
.PD
-.zZ
diff --git a/rsyslog.conf.5 b/rsyslog.conf.5
index 7f6ca98..a21aca0 100644
--- a/rsyslog.conf.5
+++ b/rsyslog.conf.5
@@ -17,7 +17,7 @@
.\" along with this program; if not, write to the Free Software
.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
.\"
-.TH RSYSLOG.CONF 5 "04 September 2007" "Version 1.19.4" "Linux System Administration"
+.TH RSYSLOG.CONF 5 "12 February 2008" "Version 2.0.2" "Linux System Administration"
.SH NAME
rsyslog.conf \- rsyslogd(8) configuration file
.SH DESCRIPTION
@@ -527,7 +527,7 @@ extract from a position until the end of the string, you can place a dollar-sign
(e.g. %msg:10:$%, which will extract from position 10 to the end of the string).
There is also support for
-.Bregular expressions.
+.B regular expressions.
To use them, you need to place a "R" into FromChar.
This tells rsyslog that a regular expression instead of position-based extraction is desired. The
actual regular expression
diff --git a/rsyslogd.8 b/rsyslogd.8
index 1d44b8d..ae6cebd 100644
--- a/rsyslogd.8
+++ b/rsyslogd.8
@@ -1,7 +1,7 @@
.\" Copyright 2004-2005 Rainer Gerhards and Adiscon for the rsyslog modifications
.\" May be distributed under the GNU General Public License
.\"
-.TH RSYSLOGD 8 "11 December 2008" "Version 1.20.1 (devel)" "Linux System Administration"
+.TH RSYSLOGD 8 "12 February 2008" "Version 2.0.2" "Linux System Administration"
.SH NAME
rsyslogd \- reliable and extended syslogd
.SH SYNOPSIS
@@ -599,4 +599,3 @@ Adiscon GmbH
.TP
mmeckelein@adiscon.com
.PD
-.zZ
diff --git a/syslogd.c b/syslogd.c
index 396a540..06780bf 100644
--- a/syslogd.c
+++ b/syslogd.c
@@ -471,7 +471,7 @@ static int bDebugPrintCfSysLineHandlerList = 1;/* output cfsyslinehandler list i
static int bDebugPrintModuleList = 1;/* output module list in debug mode? */
int bDropMalPTRMsgs = 0;/* Drop messages which have malicious PTR records during DNS lookup */
static uchar cCCEscapeChar = '\\';/* character to be used to start an escape sequence for control chars */
-static int bEscapeCCOnRcv; /* escape control characters on reception: 0 - no, 1 - yes */
+static int bEscapeCCOnRcv = 1; /* escape control characters on reception: 0 - no, 1 - yes */
static int bReduceRepeatMsgs; /* reduce repeated message - 0 - no, 1 - yes */
static int bActExecWhenPrevSusp; /* execute action only when previous one was suspended? */
static int logEveryMsg = 0;/* no repeat message processing - read-only after startup
@@ -5220,6 +5220,7 @@ static rsRetVal cflineDoAction(uchar **p, action_t **ppAction)
/* loop through all modules and see if one picks up the line */
pMod = omodGetNxt(NULL);
while(pMod != NULL) {
+ pOMSR = NULL;
iRet = pMod->mod.om.parseSelectorAct(p, &pModData, &pOMSR);
dbgprintf("tried selector action for %s: %d\n", modGetName(pMod), iRet);
if(iRet == RS_RET_OK || iRet == RS_RET_SUSPENDED) {