summaryrefslogtreecommitdiffstats
path: root/runtime/msg.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2009-09-10 15:05:36 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2009-09-10 15:05:36 +0200
commitb34a23c6523de492e02f064a73a93abcea670667 (patch)
treec6fba692cacd8b26529c2384eb6821f48bc2fdf2 /runtime/msg.c
parent5f76568d3707cbbadfa3767558ded52cf5f27f47 (diff)
parent78e9c7c4d2c4ec09cce403066f09a5a7e08e994e (diff)
downloadrsyslog-b34a23c6523de492e02f064a73a93abcea670667.tar.gz
rsyslog-b34a23c6523de492e02f064a73a93abcea670667.tar.bz2
rsyslog-b34a23c6523de492e02f064a73a93abcea670667.zip
Merge branch 'v4-beta' into v4-devel
Diffstat (limited to 'runtime/msg.c')
-rw-r--r--runtime/msg.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/runtime/msg.c b/runtime/msg.c
index de298871..2a370618 100644
--- a/runtime/msg.c
+++ b/runtime/msg.c
@@ -864,13 +864,17 @@ msg_t* MsgDup(msg_t* pOld)
pNew->iProtocolVersion = pOld->iProtocolVersion;
pNew->ttGenTime = pOld->ttGenTime;
pNew->offMSG = pOld->offMSG;
+ pNew->iLenRawMsg = pOld->iLenRawMsg;
+ pNew->iLenMSG = pOld->iLenMSG;
+ pNew->iLenTAG = pOld->iLenTAG;
+ pNew->iLenHOSTNAME = pOld->iLenHOSTNAME;
if(pOld->pRcvFrom != NULL) {
pNew->pRcvFrom = pOld->pRcvFrom;
prop.AddRef(pNew->pRcvFrom);
}
if(pOld->pRcvFromIP != NULL) {
pNew->pRcvFromIP = pOld->pRcvFromIP;
- prop.AddRef(pNew->pRcvFromIP); /* XXX */
+ prop.AddRef(pNew->pRcvFromIP);
}
if(pOld->pInputName != NULL) {
pNew->pInputName = pOld->pInputName;
@@ -1972,10 +1976,11 @@ rsRetVal MsgReplaceMSG(msg_t *pThis, uchar* pszMSG, int lenMSG)
lenNew = pThis->iLenRawMsg + lenMSG - pThis->iLenMSG;
if(lenMSG > pThis->iLenMSG && lenNew >= CONF_RAWMSG_BUFSIZE) {
- /* we have lost and need to alloc a new buffer ;) */
+ /* we have lost our "bet" and need to alloc a new buffer ;) */
CHKmalloc(bufNew = malloc(lenNew + 1));
memcpy(bufNew, pThis->pszRawMsg, pThis->offMSG);
- free(pThis->pszRawMsg);
+ if(pThis->pszRawMsg != pThis->szRawMsg)
+ free(pThis->pszRawMsg);
pThis->pszRawMsg = bufNew;
}