diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2011-03-01 14:23:21 +0100 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2011-03-01 14:23:21 +0100 |
commit | bd73f263b310c29d5e0b0dd541403bde44030b86 (patch) | |
tree | d01694447df52c249833767e48f6dd6be00338a3 | |
parent | 5b1cd3330196c5ffa2b8695798946aa2441b7e84 (diff) | |
download | rsyslog-bd73f263b310c29d5e0b0dd541403bde44030b86.tar.gz rsyslog-bd73f263b310c29d5e0b0dd541403bde44030b86.tar.xz rsyslog-bd73f263b310c29d5e0b0dd541403bde44030b86.zip |
bugfix: potential abort condition when $RepeatedMsgReduction set to on
as well as potentially in a number of other places where MsgDup() was
used. This only happened when the imudp input module was used and it
depended on name resolution not yet had taken place. In other words,
this was a strange problem that could lead to hard to diagnose
instability. So if you experience instability, chances are good that
this fix will help.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | runtime/msg.c | 3 |
2 files changed, 11 insertions, 1 deletions
@@ -1,4 +1,13 @@ --------------------------------------------------------------------------- +Version 5.7.7 [V5-BETA] (rgerhards), 2011-03-?? +- bugfix: potential abort condition when $RepeatedMsgReduction set to on + as well as potentially in a number of other places where MsgDup() was + used. This only happened when the imudp input module was used and it + depended on name resolution not yet had taken place. In other words, + this was a strange problem that could lead to hard to diagnose + instability. So if you experience instability, chances are good that + this fix will help. +--------------------------------------------------------------------------- Version 5.7.6 [V5-BETA] (rgerhards), 2011-02-25 - bugfix: fixed a memory leak and potential abort condition this could happen if multiple rulesets were used and some output batches diff --git a/runtime/msg.c b/runtime/msg.c index fb4d5742..b0261faa 100644 --- a/runtime/msg.c +++ b/runtime/msg.c @@ -932,13 +932,14 @@ msg_t* MsgDup(msg_t* pOld) pNew->iLenMSG = pOld->iLenMSG; pNew->iLenTAG = pOld->iLenTAG; pNew->iLenHOSTNAME = pOld->iLenHOSTNAME; - if((pOld->msgFlags & NEEDS_DNSRESOL) == 1) { + if((pOld->msgFlags & NEEDS_DNSRESOL)) { localRet = msgSetFromSockinfo(pNew, pOld->rcvFrom.pfrominet); if(localRet != RS_RET_OK) { /* if something fails, we accept loss of this property, it is * better than losing the whole message. */ pNew->msgFlags &= ~NEEDS_DNSRESOL; + pNew->rcvFrom.pRcvFrom = NULL; /* make sure no dangling values */ } } else { if(pOld->rcvFrom.pRcvFrom != NULL) { |