From: Eric Leblond Date: Thu, 12 Feb 2015 21:27:07 +0000 (+0100) Subject: pcap-file: add missing atomic init X-Git-Tag: suricata-2.0.7~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F1336%2Fhead;p=thirdparty%2Fsuricata.git pcap-file: add missing atomic init It is mandatory to init all atomic to avoid problem on system without atomic support. --- 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__ */