summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2009-09-29 09:50:39 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2009-09-29 09:50:39 +0200
commit8bab264ba168b5fee36a7b45020e5e2172c74224 (patch)
treef8cf18a089bc950d1a934fd49cbed3139b82b787
parentd15eb7fa83fc4ed237a6e692b7a5e3648038333a (diff)
downloadrsyslog-8bab264ba168b5fee36a7b45020e5e2172c74224.tar.gz
rsyslog-8bab264ba168b5fee36a7b45020e5e2172c74224.tar.xz
rsyslog-8bab264ba168b5fee36a7b45020e5e2172c74224.zip
minor cleanup & preparation for 4.5.4v4.5.4
-rw-r--r--ChangeLog2
-rw-r--r--runtime/stream.c9
2 files changed, 1 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 7c6985b7..cf05b59c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,5 @@
---------------------------------------------------------------------------
-Version 4.5.4 [v4-beta] (rgerhards), 2009-09-??
+Version 4.5.4 [v4-beta] (rgerhards), 2009-09-29
- bugfix: potential segfault in stream writer on destruction
Most severely affected omfile. The problem was that some buffers were
freed before the asynchronous writer thread was shut down. So the
diff --git a/runtime/stream.c b/runtime/stream.c
index 3348fb74..ac90df28 100644
--- a/runtime/stream.c
+++ b/runtime/stream.c
@@ -677,11 +677,9 @@ CODESTARTobjDestruct(strm)
/* Note: mutex will be unlocked in stopWriter! */
d_pthread_mutex_lock(&pThis->mut);
-dbgprintf("XXX: destruct stream 1 %p\n", pThis);
if(pThis->tOperationsMode != STREAMMODE_READ)
strmFlush(pThis);
-dbgprintf("XXX: destruct stream 2 %p\n", pThis);
if(pThis->bAsyncWrite) {
stopWriter(pThis);
pthread_mutex_destroy(&pThis->mut);
@@ -694,7 +692,6 @@ dbgprintf("XXX: destruct stream 2 %p\n", pThis);
} else {
free(pThis->pIOBuf);
}
-dbgprintf("XXX: destruct stream 3 (doing close) %p\n", pThis);
/* Finally, we can free the resources.
* IMPORTANT: we MUST free this only AFTER the ansyncWriter has been stopped, else
@@ -850,7 +847,6 @@ doAsyncWriteInternal(strm_t *pThis, size_t lenBuf)
DEFiRet;
ISOBJ_TYPE_assert(pThis, strm);
-dbgprintf("XXX: doAsyncWriteInternal: strm %p, len %ld\n", pThis, (long) lenBuf);
while(pThis->iCnt >= STREAM_ASYNC_NUMBUFS)
d_pthread_cond_wait(&pThis->notFull, &pThis->mut);
@@ -1065,13 +1061,10 @@ doZipWrite(strm_t *pThis, uchar *pBuf, size_t lenBuf)
z_stream zstrm;
int zRet; /* zlib return state */
bool bzInitDone = FALSE;
- static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
DEFiRet;
assert(pThis != NULL);
assert(pBuf != NULL);
- //pthread_mutex_lock(&mut);
-
/* allocate deflate state */
zstrm.zalloc = Z_NULL;
zstrm.zfree = Z_NULL;
@@ -1110,8 +1103,6 @@ finalize_it:
}
}
- //pthread_mutex_unlock(&mut);
-
RETiRet;
}