From 771c134156a2d7be26eb48978a225273d7b5f2fc Mon Sep 17 00:00:00 2001 From: Eric Leblond Date: Thu, 12 Feb 2015 22:27:07 +0100 Subject: [PATCH] pcap-file: add missing atomic init It is mandatory to init all atomic to avoid problem on system without atomic support. --- src/runmode-pcap-file.c | 6 ++++++ src/source-pcap-file.c | 8 +++++++- src/source-pcap-file.h | 2 ++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/runmode-pcap-file.c b/src/runmode-pcap-file.c index d4edc07c62..2f713678ab 100644 --- a/src/runmode-pcap-file.c +++ b/src/runmode-pcap-file.c @@ -24,6 +24,8 @@ #include "output.h" #include "detect-engine-mpm.h" +#include "source-pcap-file.h" + #include "alert-fastlog.h" #include "alert-prelude.h" #include "alert-unified2-alert.h" @@ -77,6 +79,8 @@ int RunModeFilePcapSingle(DetectEngineCtx *de_ctx) RunModeInitialize(); TimeModeSetOffline(); + PcapFileGlobalInit(); + /* create the threads */ ThreadVars *tv = TmThreadCreatePacketHandler("PcapFile", "packetpool", "packetpool", @@ -327,6 +331,8 @@ int RunModeFilePcapAutoFp(DetectEngineCtx *de_ctx) TimeModeSetOffline(); + PcapFileGlobalInit(); + /* Available cpus */ uint16_t ncpus = UtilCpuGetNumProcessorsOnline(); diff --git a/src/source-pcap-file.c b/src/source-pcap-file.c index d03582d0fb..7a612f520a 100644 --- a/src/source-pcap-file.c +++ b/src/source-pcap-file.c @@ -129,7 +129,13 @@ void TmModuleDecodePcapFileRegister (void) { tmm_modules[TMM_DECODEPCAPFILE].flags = TM_FLAG_DECODE_TM; } -void PcapFileCallbackLoop(char *user, struct pcap_pkthdr *h, u_char *pkt) { +void PcapFileGlobalInit() +{ + SC_ATOMIC_INIT(pcap_g.invalid_checksums); +} + +void PcapFileCallbackLoop(char *user, struct pcap_pkthdr *h, u_char *pkt) +{ SCEnter(); PcapFileThreadVars *ptv = (PcapFileThreadVars *)user; diff --git a/src/source-pcap-file.h b/src/source-pcap-file.h index 636cbdeb6d..fa76a1a8f8 100644 --- a/src/source-pcap-file.h +++ b/src/source-pcap-file.h @@ -29,5 +29,7 @@ void TmModuleDecodePcapFileRegister (void); void PcapIncreaseInvalidChecksum(); +void PcapFileGlobalInit(); + #endif /* __SOURCE_PCAP_FILE_H__ */ -- 2.47.3