diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | runtime/msg.c | 2 | ||||
-rw-r--r-- | tools/syslogd.c | 2 |
3 files changed, 12 insertions, 1 deletions
@@ -86,6 +86,9 @@ version before switching to this one. Thanks to Ken for providing the patch --------------------------------------------------------------------------- Version 3.21.10 [BETA] (rgerhards), 2008-12-?? +- bugfix: inconsistent use of mutex/atomic operations could cause segfault + details are too many, for full analysis see blog post at: + http://blog.gerhards.net/2009/01/rsyslog-data-race-analysis.html - the string "Do Die" was accidently emited upon exit in non-debug mode This has now been corrected. Thanks to varmojfekoj for the patch. - some legacy options were not correctly processed. @@ -232,6 +235,12 @@ Version 3.21.0 [DEVEL] (rgerhards), 2008-07-18 - imported all changes from 3.18.1 until today (some quite important, see below) --------------------------------------------------------------------------- +Version 3.20.4 [v3-stable] (rgerhards), 2009-02-?? +- bugfix: inconsistent use of mutex/atomic operations could cause segfault + details are too many, for full analysis see blog post at: + http://blog.gerhards.net/2009/01/rsyslog-data-race-analysis.html +- bugfix: invalid mutex access in msg.c +--------------------------------------------------------------------------- Version 3.20.3 [v3-stable] (rgerhards), 2009-01-19 - doc bugfix: v3-compatiblity document had typo in config directive thanks to Andrej for reporting this diff --git a/runtime/msg.c b/runtime/msg.c index 457a592a..9aa2ce84 100644 --- a/runtime/msg.c +++ b/runtime/msg.c @@ -397,7 +397,9 @@ CODESTARTobjDestruct(msg) rsCStrDestruct(&pThis->pCSPROCID); if(pThis->pCSMSGID != NULL) rsCStrDestruct(&pThis->pCSMSGID); +# ifndef HAVE_ATOMIC_BUILTINS MsgUnlock(pThis); +# endif funcDeleteMutex(pThis); } else { MsgUnlock(pThis); diff --git a/tools/syslogd.c b/tools/syslogd.c index 95f343d8..853a97f7 100644 --- a/tools/syslogd.c +++ b/tools/syslogd.c @@ -1648,7 +1648,7 @@ logmsg(msg_t *pMsg, int flags) assert(pMsg != NULL); assert(pMsg->pszUxTradMsg != NULL); msg = (char*) pMsg->pszUxTradMsg; - dbgprintf("logmsg: flags %x, pri %s, from '%s', msg %s\n", flags, getPRI(pMsg), getRcvFrom(pMsg), msg); + dbgprintf("logmsg: flags %x, from '%s', msg %s\n", flags, getRcvFrom(pMsg), msg); /* rger 2005-11-24 (happy thanksgiving!): we now need to check if we have * a traditional syslog message or one formatted according to syslog-protocol. |