summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2009-06-22 16:06:29 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2009-06-22 16:06:29 +0200
commit236bdb5cfaf56d9192a9911f140ba3da95b390b6 (patch)
treec69594b004f5a846b833547575f61841f6f997b0
parent5defa14fed704cabe2074f4bdbb6d389d6dee7cf (diff)
downloadrsyslog-236bdb5cfaf56d9192a9911f140ba3da95b390b6.tar.gz
rsyslog-236bdb5cfaf56d9192a9911f140ba3da95b390b6.tar.xz
rsyslog-236bdb5cfaf56d9192a9911f140ba3da95b390b6.zip
bugfix: huge memory leak in queue engine
(made rsyslogd unusable in production). Occured if at least one queue was in direct mode (the default for action queues).
-rw-r--r--ChangeLog3
-rw-r--r--runtime/queue.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 70d58419..f2d6aac6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+- bugfix: huge memory leak in queue engine (made rsyslogd unusable in
+ production). Occured if at least one queue was in direct mode
+ (the default for action queues)
---------------------------------------------------------------------------
Version 5.1.0 [DEVEL] (rgerhards), 2009-05-29
diff --git a/runtime/queue.c b/runtime/queue.c
index e18ce3d7..9462f865 100644
--- a/runtime/queue.c
+++ b/runtime/queue.c
@@ -1089,6 +1089,7 @@ static rsRetVal qAddDirect(qqueue_t *pThis, void* pUsr)
singleBatch.nElem = 1; /* there always is only one in direct mode */
singleBatch.pElem = &batchObj;
iRet = pThis->pConsumer(pThis->pUsr, &singleBatch);
+ objDestruct(pUsr);
RETiRet;
}