summaryrefslogtreecommitdiffstats
path: root/action.c
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 /action.c
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
Diffstat (limited to 'action.c')
-rw-r--r--action.c4
1 files changed, 3 insertions, 1 deletions
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;
}