diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2009-09-29 09:50:39 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2009-09-29 09:50:39 +0200 |
commit | 8bab264ba168b5fee36a7b45020e5e2172c74224 (patch) | |
tree | f8cf18a089bc950d1a934fd49cbed3139b82b787 | |
parent | d15eb7fa83fc4ed237a6e692b7a5e3648038333a (diff) | |
download | rsyslog-8bab264ba168b5fee36a7b45020e5e2172c74224.tar.gz rsyslog-8bab264ba168b5fee36a7b45020e5e2172c74224.tar.xz rsyslog-8bab264ba168b5fee36a7b45020e5e2172c74224.zip |
minor cleanup & preparation for 4.5.4v4.5.4
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | runtime/stream.c | 9 |
2 files changed, 1 insertions, 10 deletions
@@ -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; } |