diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2005-10-10 06:58:35 +0000 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2005-10-10 06:58:35 +0000 |
commit | 41cb6dd1b967debb984761a69921e2adbadeb1ed (patch) | |
tree | 84d5c8729056eaa1c8892c4a1797e54a9439cda9 | |
parent | 3aea4c6fcc6a4fc2e15a687b8aff35ae3d6b96d6 (diff) | |
download | rsyslog-41cb6dd1b967debb984761a69921e2adbadeb1ed.tar.gz rsyslog-41cb6dd1b967debb984761a69921e2adbadeb1ed.tar.xz rsyslog-41cb6dd1b967debb984761a69921e2adbadeb1ed.zip |
additional hardening for file gt 2gb; fixed a bug in unix domain socket
processing
-rw-r--r-- | NEWS | 8 | ||||
-rw-r--r-- | doc/status.html | 4 | ||||
-rw-r--r-- | syslogd.c | 16 | ||||
-rw-r--r-- | version.h | 2 |
4 files changed, 20 insertions, 10 deletions
@@ -1,4 +1,12 @@ --------------------------------------------------------------------------- +Version 1.0.3 (RGer), 2005-10-10 +- added an additional guard to prevent rsyslogd from aborting when the + 2gb file size limit is hit. While a user can configure rsyslogd to + handle such situations, it would abort if that was not done AND large + file support was not enabled (ok, this is hopefully an unlikely scenario) +- fixed a bug that caused additional Unix domain sockets to be incorrectly + processed - could lead to message loss in extreme cases +--------------------------------------------------------------------------- Version 1.0.2 (RGer), 2005-10-05 - fixed an issue with MySQL error reporting. When an error occured, the MySQL driver went into an endless loop (at least in most cases). diff --git a/doc/status.html b/doc/status.html index 58d32f4f..f44bab8a 100644 --- a/doc/status.html +++ b/doc/status.html @@ -4,9 +4,9 @@ </head>
<body>
<h2>rsyslog status page</h2>
-<p>This page reflects the status as of 2005-10-24.</p>
+<p>This page reflects the status as of 2005-10-10.</p>
<h2>Current Release</h2>
-<p>1.0.2 - <a href="http://www.rsyslog.com/Article40.phtml">change log</a> -
+<p>1.0.3 - <a href="http://www.rsyslog.com/Article40.phtml">change log</a> -
<a href="http://www.rsyslog.com/Downloads-index-req-getit-lid-20.phtml">download</a>
(<a href="version_naming.html">How are versions named?</a>)</p>
<h2>Platforms</h2>
@@ -2403,6 +2403,7 @@ int main(argc, argv) (void) signal(SIGALRM, domark); (void) signal(SIGUSR1, Debug ? debug_switch : SIG_IGN); (void) signal(SIGPIPE, SIG_IGN); + (void) signal(SIGXFSZ, SIG_IGN); /* do not abort if 2gig file limit is hit */ (void) alarm(TIMERINTVL); /* Create a partial message table for all file descriptors. */ @@ -2604,19 +2605,20 @@ int main(argc, argv) #ifdef SYSLOG_UNIXAF for (i = 0; i < nfunix; i++) { if ((fd = funix[i]) != -1 && FD_ISSET(fd, &readfds)) { + int iRcvd; memset(line, '\0', sizeof(line)); - i = recv(fd, line, MAXLINE - 2, 0); + iRcvd = recv(fd, line, MAXLINE - 2, 0); dprintf("Message from UNIX socket: #%d\n", fd); - if (i > 0) { - line[i] = line[i+1] = '\0'; - printchopped(LocalHostName, line, i + 2, fd, SOURCE_UNIXAF); - } else if (i < 0 && errno != EINTR) { + if (iRcvd > 0) { + line[iRcvd] = line[iRcvd+1] = '\0'; + printchopped(LocalHostName, line, iRcvd + 2, fd, SOURCE_UNIXAF); + } else if (iRcvd < 0 && errno != EINTR) { dprintf("UNIX socket error: %d = %s.\n", \ errno, strerror(errno)); logerror("recvfrom UNIX"); - } } - } + } + } #endif #ifdef SYSLOG_INET @@ -1,2 +1,2 @@ #define VERSION "1.0" -#define PATCHLEVEL "2" +#define PATCHLEVEL "3" |