summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog17
-rw-r--r--configure.ac2
-rw-r--r--doc/manual.html2
-rw-r--r--grammar/rainerscript.c10
-rw-r--r--plugins/im3195/im3195.c16
-rw-r--r--plugins/mmjsonparse/mmjsonparse.c1
-rw-r--r--runtime/datetime.c4
-rw-r--r--runtime/msg.c2
8 files changed, 44 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 5e513507..88406bc1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,5 @@
----------------------------------------------------------------------------
-Version 7.2.5 [v7-stable] 2013-01-??
+Version 7.2.6 [v7-stable] 2013-01-??
- omudpspoof: add support for new config system
- omudpspoof: add support for packets larger than 1472 bytes
On Ethernet, they need to be transmitted in multiple fragments. While
@@ -10,6 +10,7 @@ Version 7.2.5 [v7-stable] 2013-01-??
lead to problems (unfortunately, at least some libnet versions do not
report a proper error state but still "success"...). The order of libnet
calls has been adjusted to by in sync with what the core engine does.
+Version 7.2.5 [v7-stable] 2013-01-08
- build system cleanup (thanks to Michael Biebl for this!)
- bugfix: omelasticsearch did not properly compile on some platforms
due to missing libmath. Thanks to Michael Biebl for the fix
@@ -20,6 +21,20 @@ Version 7.2.5 [v7-stable] 2013-01-??
shutdown phase*. This affected only the LAST batches being processed. No
problem existed during the regular run. Could usually only happen on
very busy systems, which were still busy during shutdown.
+- bugfix: very large memory consumption (and probably out of memory) when
+ FromPos was specified in template, but ToPos not.
+ Thanks to Radu Gheorghe for alerting us of this bug.
+- bugfix: timeval2syslogTime cause problems on some platforms
+ due to invalid assumption on structure data types.
+ closes: http://bugzilla.adiscon.com/show_bug.cgi?id=394
+ Thanks to David Hill for the patch [under ASL2.0 as per email conversation
+ 2013-01-03].
+- bugfix: compile errors in im3195
+ Thanks to Martin Körper for the patch
+- bugfix: doGetFileCreateMode() had invalid validity check ;)
+ Thanks to Chandler Latour for the patch.
+- bugfix: mmjsonparse errornously returned action error when no CEE cookie
+ was present.
----------------------------------------------------------------------------
Version 7.2.4 [v7-stable] 2012-12-07
- enhance: permit RFC3339 timestamp in local log socket messages
diff --git a/configure.ac b/configure.ac
index 193f2df7..cd410e3c 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],[7.2.4.up3],[rsyslog@lists.adiscon.com])
+AC_INIT([rsyslog],[7.2.5.up1],[rsyslog@lists.adiscon.com])
AM_INIT_AUTOMAKE
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
diff --git a/doc/manual.html b/doc/manual.html
index bddac9c0..1bf537f0 100644
--- a/doc/manual.html
+++ b/doc/manual.html
@@ -19,7 +19,7 @@ rsyslog support</a> available directly from the source!</p>
<p><b>Please visit the <a href="http://www.rsyslog.com/sponsors">rsyslog sponsor's page</a>
to honor the project sponsors or become one yourself!</b> We are very grateful for any help towards the
project goals.</p>
-<p><b>This documentation is for version 7.2.4 (v7-stable branch) of rsyslog.</b>
+<p><b>This documentation is for version 7.2.5 (v7-stable branch) of rsyslog.</b>
Visit the <i><a href="http://www.rsyslog.com/status">rsyslog status page</a></i></b>
to obtain current version information and project status.
</p><p><b>If you like rsyslog, you might
diff --git a/grammar/rainerscript.c b/grammar/rainerscript.c
index c5f2148e..0584d6a9 100644
--- a/grammar/rainerscript.c
+++ b/grammar/rainerscript.c
@@ -463,17 +463,17 @@ doGetFileCreateMode(struct nvlst *valnode, struct cnfparamdescr *param,
if(es_strlen(valnode->val.d.estr) == 4) {
c = es_getBufAddr(valnode->val.d.estr);
- if(!( (c[0] == '0')
- && (c[1] >= '0' && c[1] <= '7')
- && (c[2] >= '0' && c[2] <= '7')
- && (c[3] >= '0' && c[3] <= '7') ) ) {
+ if( (c[0] == '0')
+ && (c[1] >= '0' && c[1] <= '7')
+ && (c[2] >= '0' && c[2] <= '7')
+ && (c[3] >= '0' && c[3] <= '7') ) {
fmtOK = 1;
}
}
if(fmtOK) {
val->val.datatype = 'N';
- val->val.d.n = (c[1]-'0') * 64 + (c[2]-'0') * 8 + (c[3]-'0');;
+ val->val.d.n = (c[1]-'0') * 64 + (c[2]-'0') * 8 + (c[3]-'0');
} else {
cstr = es_str2cstr(valnode->val.d.estr, NULL);
parser_errmsg("file modes need to be specified as "
diff --git a/plugins/im3195/im3195.c b/plugins/im3195/im3195.c
index c75e0e34..b8a4a140 100644
--- a/plugins/im3195/im3195.c
+++ b/plugins/im3195/im3195.c
@@ -48,6 +48,7 @@
#include "cfsysline.h"
#include "msg.h"
#include "errmsg.h"
+#include "unicode-helper.h"
MODULE_TYPE_INPUT
MODULE_TYPE_NOKEEP
@@ -56,6 +57,7 @@ MODULE_CNFNAME("im3195")
/* Module static data */
DEF_IMOD_STATIC_DATA
DEFobjCurrIf(errmsg)
+DEFobjCurrIf(prop)
/* configuration settings */
@@ -71,6 +73,8 @@ static int listenPort = 601;
*/
static srAPIObj* pAPI;
+static prop_t *pInputName = NULL; /* there is only one global inputName for all messages generated by this module */
+
/* This method is called when a message has been fully received.
* It passes the received message to the rsyslog main message
@@ -90,7 +94,7 @@ void OnReceive(srAPIObj __attribute__((unused)) *pMyAPI, srSLMGObj* pSLMG)
srSLMGGetRawMSG(pSLMG, &pszRawMsg);
parseAndSubmitMessage(fromHost, fromHostIP, pszRawMsg, strlen((char*)pszRawMsg),
- PARSE_HOSTNAME, eFLOWCTL_FULL_DELAY, (uchar*)"im3195", NULL, 0, NULL);
+ PARSE_HOSTNAME, eFLOWCTL_FULL_DELAY, pInputName, NULL, 0, NULL);
}
@@ -171,8 +175,12 @@ ENDafterRun
BEGINmodExit
CODESTARTmodExit
srAPIExitLib(pAPI); /* terminate liblogging */
+ /* global variable cleanup */
+ if(pInputName != NULL)
+ prop.Destruct(&pInputName);
/* release objects we used */
objRelease(errmsg, CORE_COMPONENT);
+ objRelease(prop, CORE_COMPONENT);
ENDmodExit
@@ -193,9 +201,15 @@ CODESTARTmodInit
*ipIFVersProvided = CURR_MOD_IF_VERSION; /* we only support the current interface specification */
CODEmodInit_QueryRegCFSLineHdlr
CHKiRet(objUse(errmsg, CORE_COMPONENT));
+ CHKiRet(objUse(prop, CORE_COMPONENT));
CHKiRet(omsdRegCFSLineHdlr((uchar *)"input3195listenport", 0, eCmdHdlrInt, NULL, &listenPort, STD_LOADABLE_MODULE_ID));
CHKiRet(omsdRegCFSLineHdlr((uchar *)"resetconfigvariables", 1, eCmdHdlrCustomHandler, resetConfigVariables, NULL, STD_LOADABLE_MODULE_ID));
+
+ CHKiRet(prop.Construct(&pInputName));
+ CHKiRet(prop.SetString(pInputName, UCHAR_CONSTANT("im3195"), sizeof("im3195") - 1));
+ CHKiRet(prop.ConstructFinalize(pInputName));
+
ENDmodInit
/* vim:set ai:
*/
diff --git a/plugins/mmjsonparse/mmjsonparse.c b/plugins/mmjsonparse/mmjsonparse.c
index 40cfa919..a13962ab 100644
--- a/plugins/mmjsonparse/mmjsonparse.c
+++ b/plugins/mmjsonparse/mmjsonparse.c
@@ -172,6 +172,7 @@ finalize_it:
jval = json_object_new_string((char*)buf);
json_object_object_add(json, "msg", jval);
msgAddJSON(pMsg, (uchar*)"!", json);
+ iRet = RS_RET_OK;
}
MsgSetParseSuccess(pMsg, bSuccess);
ENDdoAction
diff --git a/runtime/datetime.c b/runtime/datetime.c
index c03abab9..7d974471 100644
--- a/runtime/datetime.c
+++ b/runtime/datetime.c
@@ -61,8 +61,10 @@ timeval2syslogTime(struct timeval *tp, struct syslogTime *t)
struct tm *tm;
struct tm tmBuf;
long lBias;
+ time_t secs;
- tm = localtime_r((time_t*) &(tp->tv_sec), &tmBuf);
+ secs = tp->tv_sec;
+ tm = localtime_r(&secs, &tmBuf);
t->year = tm->tm_year + 1900;
t->month = tm->tm_mon + 1;
diff --git a/runtime/msg.c b/runtime/msg.c
index 09f6d649..10605ba4 100644
--- a/runtime/msg.c
+++ b/runtime/msg.c
@@ -3027,6 +3027,8 @@ uchar *MsgGetProp(msg_t *pMsg, struct templateEntry *pTpe,
*/
; /*DO NOTHING*/
} else {
+ if(iTo > bufLen) /* iTo is very large, if no to-position is set in the template! */
+ iTo = bufLen;
iLen = iTo - iFrom + 1; /* the +1 is for an actual char, NOT \0! */
pBufStart = pBuf = MALLOC((iLen + 1) * sizeof(char));
if(pBuf == NULL) {