diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2008-08-14 11:19:02 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2008-08-14 11:19:02 +0200 |
commit | 7b456ce548030ff362d3a2be04b1e5c2c89e0dcb (patch) | |
tree | dbde3d8ff7515f5baf109c5ed17454e2f9665ab4 /threads.c | |
parent | 8eb888d049da12e1294a7688432b6325794ade32 (diff) | |
download | rsyslog-7b456ce548030ff362d3a2be04b1e5c2c89e0dcb.tar.gz rsyslog-7b456ce548030ff362d3a2be04b1e5c2c89e0dcb.tar.bz2 rsyslog-7b456ce548030ff362d3a2be04b1e5c2c89e0dcb.zip |
bugfix: imfile could cause a segfault upon rsyslogd HUP and termination
Thanks to lperr for an excellent bug report that helped detect this
problem.
Diffstat (limited to 'threads.c')
-rw-r--r-- | threads.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -46,6 +46,7 @@ static linkedList_t llThrds; */ static rsRetVal thrdConstruct(thrdInfo_t **ppThis) { + DEFiRet; thrdInfo_t *pThis; assert(ppThis != NULL); @@ -60,7 +61,7 @@ static rsRetVal thrdConstruct(thrdInfo_t **ppThis) pthread_mutex_init (pThis->mutTermOK, NULL); *ppThis = pThis; - return RS_RET_OK; + RETiRet; } @@ -70,6 +71,7 @@ static rsRetVal thrdConstruct(thrdInfo_t **ppThis) */ static rsRetVal thrdDestruct(thrdInfo_t *pThis) { + DEFiRet; assert(pThis != NULL); if(pThis->bIsActive == 1) { @@ -78,7 +80,7 @@ static rsRetVal thrdDestruct(thrdInfo_t *pThis) free(pThis->mutTermOK); free(pThis); - return RS_RET_OK; + RETiRet; } @@ -86,6 +88,7 @@ static rsRetVal thrdDestruct(thrdInfo_t *pThis) */ rsRetVal thrdTerminate(thrdInfo_t *pThis) { + DEFiRet; assert(pThis != NULL); pthread_cancel(pThis->thrdID); @@ -96,7 +99,7 @@ rsRetVal thrdTerminate(thrdInfo_t *pThis) if(pThis->pAfterRun != NULL) pThis->pAfterRun(pThis); - return RS_RET_OK; + RETiRet; } @@ -104,8 +107,9 @@ rsRetVal thrdTerminate(thrdInfo_t *pThis) */ rsRetVal thrdTerminateAll(void) { + DEFiRet; llDestroy(&llThrds); - return RS_RET_OK; + RETiRet; } |