From 73700af92b986bb10671651f4f13b81dd52e658c Mon Sep 17 00:00:00 2001 From: Jason Ish Date: Wed, 17 Feb 2010 16:15:55 -0800 Subject: [PATCH] afaik integer increments are not atomic, so put inside the lock --- src/alert-unified-alert.c | 4 ++-- src/alert-unified-log.c | 5 +++-- src/alert-unified2-alert.c | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/alert-unified-alert.c b/src/alert-unified-alert.c index f1282f7181..3577b63397 100644 --- a/src/alert-unified-alert.c +++ b/src/alert-unified-alert.c @@ -227,11 +227,11 @@ TmEcode AlertUnifiedAlert (ThreadVars *tv, Packet *p, void *data, PacketQueue *p /* force writing to disk so barnyard will not read half * written records and choke. */ fflush(aun->file_ctx->fp); - SCMutexUnlock(&aun->file_ctx->fp_mutex); aun->file_ctx->size_current += sizeof(hdr); + aun->file_ctx->alerts++; + SCMutexUnlock(&aun->file_ctx->fp_mutex); } - aun->file_ctx->alerts += p->alerts.cnt; return TM_ECODE_OK; } diff --git a/src/alert-unified-log.c b/src/alert-unified-log.c index 90d33ca3b0..86859db8c1 100644 --- a/src/alert-unified-log.c +++ b/src/alert-unified-log.c @@ -243,10 +243,11 @@ TmEcode AlertUnifiedLog (ThreadVars *tv, Packet *p, void *data, PacketQueue *pq) /* force writing to disk so barnyard will not read half * written records and choke. */ fflush(aun->file_ctx->fp); - SCMutexUnlock(&aun->file_ctx->fp_mutex); + + aun->file_ctx->alerts++; aun->file_ctx->size_current += buflen; + SCMutexUnlock(&aun->file_ctx->fp_mutex); } - aun->file_ctx->alerts += p->alerts.cnt; return TM_ECODE_OK; } diff --git a/src/alert-unified2-alert.c b/src/alert-unified2-alert.c index 9936c22a8e..146f135221 100644 --- a/src/alert-unified2-alert.c +++ b/src/alert-unified2-alert.c @@ -375,12 +375,12 @@ int Unified2IPv6TypeAlert (ThreadVars *t, Packet *p, void *data, PacketQueue *pq fflush(aun->file_ctx->fp); aun->file_ctx->size_current += len; + aun->file_ctx->alerts++; Unified2PacketTypeAlert(t, p, data); SCMutexUnlock(&aun->file_ctx->fp_mutex); } - aun->file_ctx->alerts += p->alerts.cnt; return 0; }