summaryrefslogtreecommitdiffstats
path: root/action.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2007-12-11 16:26:22 +0000
committerRainer Gerhards <rgerhards@adiscon.com>2007-12-11 16:26:22 +0000
commit3e95f0545729a43d4c0a7fe2b906783856db05fd (patch)
treece014b46e3f33b8484bdd79b70c816c9553214f0 /action.c
parent3c79979b830ad0204ae47592fa858a996ce90b5e (diff)
downloadrsyslog-3e95f0545729a43d4c0a7fe2b906783856db05fd.tar.gz
rsyslog-3e95f0545729a43d4c0a7fe2b906783856db05fd.tar.xz
rsyslog-3e95f0545729a43d4c0a7fe2b906783856db05fd.zip
fixed a potential race condition, see link for details:
http://rgerhards.blogspot.com/2007/12/rsyslog-race-condition.html
Diffstat (limited to 'action.c')
-rw-r--r--action.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/action.c b/action.c
index 5759b2c2..621cda51 100644
--- a/action.c
+++ b/action.c
@@ -34,6 +34,7 @@
#include "template.h"
#include "action.h"
#include "modules.h"
+#include "sync.h"
/* object static data (once for all instances) */
@@ -52,6 +53,7 @@ rsRetVal actionDestruct(action_t *pThis)
if(pThis->f_pMsg != NULL)
MsgDestruct(pThis->f_pMsg);
+ SYNC_OBJ_TOOL_EXIT(pThis);
if(pThis->ppTpl != NULL)
free(pThis->ppTpl);
if(pThis->ppMsgs != NULL)
@@ -77,6 +79,7 @@ rsRetVal actionConstruct(action_t **ppThis)
}
pThis->iResumeInterval = glbliActionResumeInterval;
+ SYNC_OBJ_TOOL_INIT(pThis);
finalize_it:
*ppThis = pThis;