diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2008-10-09 16:02:30 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2008-10-09 16:02:30 +0200 |
commit | 09dd5c92bb343b7dc9c93d3eff57cc004d57adc7 (patch) | |
tree | d9af6f270064add00433931c8b5e9f584197e306 | |
parent | 4bc99a5ead6892393033d22d6ce46052aca36155 (diff) | |
download | rsyslog-09dd5c92bb343b7dc9c93d3eff57cc004d57adc7.tar.gz rsyslog-09dd5c92bb343b7dc9c93d3eff57cc004d57adc7.tar.bz2 rsyslog-09dd5c92bb343b7dc9c93d3eff57cc004d57adc7.zip |
fixed memory leaks
- a big one in syslogd.c, which caused messages not to be
freed when compiled for single-threading mode
- a small one in the file output handler, outchannels, when
a size-reached action was to be executed
-rw-r--r-- | omfile.c | 2 | ||||
-rw-r--r-- | syslogd.c | 6 |
2 files changed, 7 insertions, 1 deletions
@@ -287,6 +287,8 @@ int resolveFileSizeLimit(instanceData *pData) execProg(pCmd, 1, pParams); + free(pCmd); + pData->fd = open((char*) pData->f_fname, O_WRONLY|O_APPEND|O_CREAT|O_NOCTTY, pData->fCreateMode); @@ -2784,7 +2784,6 @@ static void *singleWorker() * rgerhards, 2005-10-24 */ #ifndef USE_PTHREADS -#define enqueueMsg(x) processMsg((x)) #else static void enqueueMsg(msg_t *pMsg) { @@ -3299,7 +3298,12 @@ logmsg(int pri, msg_t *pMsg, int flags) */ pMsg->msgFlags = flags; +#ifndef USE_PTHREADS + processMsg(pMsg); + MsgDestruct(pMsg); +#else /* ifdef USE_PTHREADS */ enqueueMsg(pMsg); +#endif } |