summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2010-12-03 17:59:12 +0100
committerRainer Gerhards <rgerhards@adiscon.com>2010-12-03 17:59:12 +0100
commit925b060b2932a7f9ddee1e0fcbaa6266ba03d8b1 (patch)
tree9f67e74184361cff92eee903aa9a6bb53c76aa81
parent4618773be685488e081bebb397db32851dc16782 (diff)
downloadrsyslog-925b060b2932a7f9ddee1e0fcbaa6266ba03d8b1.tar.gz
rsyslog-925b060b2932a7f9ddee1e0fcbaa6266ba03d8b1.tar.xz
rsyslog-925b060b2932a7f9ddee1e0fcbaa6266ba03d8b1.zip
bugfix: potential abort when output modules with different parameter ...
... passing modes were used in configured output modules
-rw-r--r--ChangeLog4
-rw-r--r--action.c4
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 44200ce2..2b14c7b2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,8 @@
---------------------------------------------------------------------------
+Version 6.1.2 [DEVEL] (rgerhards), 2010-12-??
+- bugfix: potential abort when output modules with different parameter
+ passing modes were used in configured output modules
+---------------------------------------------------------------------------
Version 6.1.1 [DEVEL] (rgerhards), 2010-11-30
- bugfix(important): problem in TLS handling could cause rsyslog to loop
in a tight loop, effectively disabling functionality and bearing the
diff --git a/action.c b/action.c
index bb5767cd..999dc420 100644
--- a/action.c
+++ b/action.c
@@ -672,6 +672,8 @@ static rsRetVal prepareDoActionParams(action_t *pAction, msg_t *pMsg, uchar **pp
for(i = 0 ; i < pAction->iNumTpls ; ++i) {
switch(pAction->eParamPassing) {
case ACT_STRING_PASSING:
+ if(ppMsgs[i] == NULL)
+ lenMsgs[i] = 0;
CHKiRet(tplToString(pAction->ppTpl[i], pMsg, &(ppMsgs[i]), &lenMsgs[i]));
break;
case ACT_ARRAY_PASSING:
@@ -788,7 +790,7 @@ finalize_it:
cleanupDoActionParams(pThis, actParams); /* iRet ignored! */
break;
case ACT_MSG_PASSING:
- /* nothing to do in that case */
+ /* (almost) nothing to do in that case */
for(i = 0 ; i < pThis->iNumTpls ; ++i) {
((uchar**)actParams)[i] = NULL;
}